Function at 0x53de3b
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xc4
push ebx
mov ebx, dword [esp + 0xd0]
xor eax, eax
push ebp
mov ebp, dword [esp + 0xd0]
push esi
mov esi, edx
mov dword [ecx], eax
push edi
push dword [esp + 0xe4]
mov dword [esp + 0x24], eax
mov edx, ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
mov dword [ebp], eax
mov dword [esi], eax
mov eax, dword [esp + 0xe4]
push eax
mov dword [esp + 0x38], ecx
mov ecx, esi
push ebx
mov dword [esp + 0x30], esi
mov byte [esp + 0x27], 0
mov dword [esp + 0x28], 1
call fcn.0053db0e
add esp, 0xc
mov dword [ebx + 0x190], eax
test eax, eax
jne 0x53eaf3
mov ebp, dword [ebp]
lea edi, [ebx + 0xa4]
mov esi, dword [esi]
mov ecx, dword [ebx + 0x78]
mov dword [esp + 0x28], edi
call fcn.0053d7ef
mov ecx, dword [edi]
mov edx, eax
imul edx, dword [ebx + 0x7c]
call fcn.0053d7ef
mov ebx, eax
imul ebx, dword [edi + 4]
cmp ebx, edx
ja 0x53ded9
mov ebx, edx
mov ecx, esi
imul ecx, ebp
test esi, esi
je 0x53def0
xor edx, edx
mov eax, ecx
div esi
cmp eax, ebp
jne 0x53eae2
test ecx, ecx
je 0x53df08
xor edx, edx
lea eax, [ecx*8]
div ecx
cmp eax, 8
jne 0x53eae2
mov edi, esi
shr edi, 3
mov ecx, edi
imul ecx, ebx
test edi, edi
je 0x53df24
xor edx, edx
mov eax, ecx
div edi
cmp eax, ebx
jne 0x53eae2
and esi, 7
mov eax, ecx
imul esi, ebx
add esi, 7
shr esi, 3
add ecx, esi
cmp ecx, eax
jb 0x53eae2
mov eax, ecx
add ecx, 5
cmp ecx, eax
jb 0x53eae2
test ecx, ecx
je 0x53df5e
mov eax, ecx
xor edx, edx
imul eax, ebp
div ecx
cmp eax, ebp
jne 0x53eae2
mov ebp, dword [esp + 0xe4]
lea eax, [ebp + 4]
test eax, eax
je 0x53eac6
push eax
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
mov dword [esp + 0x14], edi
test edi, edi
je 0x53eac6
mov dword [edi], ebp
mov ecx, ebp
add edi, 4
mov edx, edi
mov dword [esp + 0x14], edi
call fcn.0055d86a
test edi, edi
je 0x53eac6
mov eax, dword [esp + 0xe0]
mov ebx, dword [esp + 0xdc]
lea esi, [eax + 0x21]
mov edi, edi
cmp dword [ebx + 0x190], 0
jne 0x53e84a
mov ecx, esi
sub ecx, eax
cmp esi, eax
jb 0x53e667
lea eax, [ecx + 0xc]
cmp eax, ebp
ja 0x53e667
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
shl eax, 8
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 8
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 8
or edx, eax
cmp edx, 0x7fffffff
ja 0x53e655
lea eax, [ecx + 0xc]
add eax, edx
cmp eax, ebp
ja 0x53e649
cmp eax, ecx
jb 0x53e649
xor ecx, ecx
lea ebp, [esi + 8]
mov dword [esp + 0x10], ecx
mov eax, 0x5c41dc
inc eax
cmp byte [eax], cl
jne 0x53e02c
sub eax, 0x5c41dc
cmp eax, 4
jne 0x53e093
cmp byte [esi + 4], 0x49
jne 0x53e093
cmp byte [esi + 5], 0x44
jne 0x53e093
cmp byte [esi + 6], 0x41
jne 0x53e093
cmp byte [esi + 7], 0x54
jne 0x53e093
mov ecx, dword [esp + 0x20]
lea edi, [edx + ecx]
cmp edi, ecx
jb 0x53e5f5
cmp edi, dword [esp + 0xe4]
ja 0x53e5f5
add ecx, dword [esp + 0x14]
push edx
mov edx, ebp
call fcn.0053d7bf
mov dword [esp + 0x24], edi
add esp, 4
mov edi, dword [esp + 0x14]
mov dword [esp + 0x1c], 3
jmp 0x53e5ab
mov eax, 0x5c41d4
lea ecx, [ecx]
inc eax
cmp byte [eax], cl
jne 0x53e09b
sub eax, 0x5c41d4
cmp eax, 4
jne 0x53e0cc
cmp byte [esi + 4], 0x49
jne 0x53e0cc
cmp byte [esi + 5], 0x45
jne 0x53e0cc
cmp byte [esi + 6], 0x4e
jne 0x53e0cc
cmp byte [esi + 7], 0x44
jne 0x53e0cc
mov byte [esp + 0x1b], 1
jmp 0x53e5af
mov eax, str.PLTE
inc eax
cmp byte [eax], cl
jne 0x53e0d1
sub eax, str.PLTE
cmp eax, 4
jne 0x53e124
cmp byte [esi + 4], 0x50
jne 0x53e124
cmp byte [esi + 5], 0x4c
jne 0x53e124
cmp byte [esi + 6], 0x54
jne 0x53e124
cmp byte [esi + 7], 0x45
jne 0x53e124
push edx
mov edx, ebp
lea ecx, [ebx + 0xa4]
call fcn.0053d73c
add esp, 4
mov dword [ebx + 0x190], eax
test eax, eax
jne 0x53e677
mov dword [esp + 0x1c], 2
jmp 0x53e5ab
mov eax, str.tRNS
mov edi, edi
inc eax
cmp byte [eax], cl
jne 0x53e12b
sub eax, str.tRNS
cmp eax, 4
jne 0x53e165
cmp byte [esi + 4], 0x74
jne 0x53e165
cmp byte [esi + 5], 0x52
jne 0x53e165
cmp byte [esi + 6], 0x4e
jne 0x53e165
cmp byte [esi + 7], 0x53
jne 0x53e165
push edx
mov edx, ebp
lea ecx, [ebx + 0xa4]
call fcn.0053d5f8
jmp 0x53e59a
mov eax, str.bKGD
nop
inc eax
cmp byte [eax], cl
jne 0x53e16b
sub eax, str.bKGD
cmp eax, 4
jne 0x53e1a5
cmp byte [esi + 4], 0x62
jne 0x53e1a5
cmp byte [esi + 5], 0x4b
jne 0x53e1a5
cmp byte [esi + 6], 0x47
jne 0x53e1a5
cmp byte [esi + 7], 0x44
jne 0x53e1a5
push edx
lea ecx, [ebx + 0x98]
mov edx, ebp
call fcn.0053d530
jmp 0x53e59a
mov eax, str.tEXt
nop
inc eax
cmp byte [eax], cl
jne 0x53e1ab
sub eax, str.tEXt
cmp eax, 4
jne 0x53e1ee
cmp byte [esi + 4], 0x74
jne 0x53e1ee
cmp byte [esi + 5], 0x45
jne 0x53e1ee
cmp byte [esi + 6], 0x58
jne 0x53e1ee
cmp byte [esi + 7], 0x74
jne 0x53e1ee
cmp dword [ebx + 0x28], ecx
je 0x53e5af
push edx
lea ecx, [ebx + 0x98]
mov edx, ebp
call fcn.0053d3d5
jmp 0x53e59a
mov eax, str.zTXt
inc eax
cmp byte [eax], cl
jne 0x53e1f3
sub eax, str.zTXt
cmp eax, 4
jne 0x53e23a
cmp byte [esi + 4], 0x7a
jne 0x53e23a
cmp byte [esi + 5], 0x54
jne 0x53e23a
cmp byte [esi + 6], 0x58
jne 0x53e23a
cmp byte [esi + 7], 0x74
jne 0x53e23a
cmp dword [ebx + 0x28], ecx
je 0x53e5af
push edx
push ebp
lea ecx, [ebx + 0x98]
mov edx, ebx
call fcn.0053cfd7
add esp, 8
jmp 0x53e59d
mov eax, str.iTXt
inc eax
cmp byte [eax], cl
jne 0x53e23f
sub eax, str.iTXt
cmp eax, 4
jne 0x53e286
cmp byte [esi + 4], 0x69
jne 0x53e286
cmp byte [esi + 5], 0x54
jne 0x53e286
cmp byte [esi + 6], 0x58
jne 0x53e286
cmp byte [esi + 7], 0x74
jne 0x53e286
cmp dword [ebx + 0x28], ecx
je 0x53e5af
push edx
push ebp
lea ecx, [ebx + 0x98]
mov edx, ebx
call fcn.0053b1f1
add esp, 8
jmp 0x53e59d
mov eax, str.tIME
inc eax
cmp byte [eax], cl
jne 0x53e28b
sub eax, str.tIME
cmp eax, 4
jne 0x53e321
cmp byte [esi + 4], 0x74
jne 0x53e321
cmp byte [esi + 5], 0x49
jne 0x53e321
cmp byte [esi + 6], 0x4d
jne 0x53e321
cmp byte [esi + 7], 0x45
jne 0x53e321
mov dword [esp + 0x14], edi
cmp edx, 7
jne 0x53e601
mov dword [ebx + 0xf4], 1
movzx ecx, byte [ebp]
movzx eax, byte [ebp + 1]
shl ecx, 8
add ecx, eax
mov dword [ebx + 0xf8], ecx
movzx eax, byte [ebp + 2]
mov dword [ebx + 0xfc], eax
movzx eax, byte [ebp + 3]
mov dword [ebx + 0x100], eax
movzx eax, byte [ebp + 4]
mov dword [ebx + 0x104], eax
movzx eax, byte [ebp + 5]
mov dword [ebx + 0x108], eax
movzx eax, byte [ebp + 6]
mov dword [ebx + 0x10c], eax
mov dword [ebx + 0x190], 0
jmp 0x53e5ab
mov eax, str.pHYs
jmp 0x53e32b
inc eax
cmp byte [eax], cl
jne 0x53e32b
sub eax, str.pHYs
cmp eax, 4
jne 0x53e3dc
cmp byte [esi + 4], 0x70
jne 0x53e3dc
cmp byte [esi + 5], 0x48
jne 0x53e3dc
cmp byte [esi + 6], 0x59
jne 0x53e3dc
cmp byte [esi + 7], 0x73
jne 0x53e3dc
mov dword [esp + 0x14], edi
cmp edx, 9
jne 0x53e60d
mov dword [ebx + 0x110], 1
movzx ecx, byte [ebp]
movzx eax, byte [ebp + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebp + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebp + 3]
shl ecx, 8
add ecx, eax
mov dword [ebx + 0x114], ecx
movzx ecx, byte [ebp + 4]
movzx eax, byte [ebp + 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebp + 6]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebp + 7]
shl ecx, 8
add ecx, eax
mov dword [ebx + 0x118], ecx
movzx eax, byte [ebp + 8]
mov dword [ebx + 0x11c], eax
mov dword [ebx + 0x190], 0
jmp 0x53e5ab
mov eax, str.gAMA
inc eax
cmp byte [eax], cl
jne 0x53e3e1
sub eax, str.gAMA
cmp eax, 4
jne 0x53e452
cmp byte [esi + 4], 0x67
jne 0x53e452
cmp byte [esi + 5], 0x41
jne 0x53e452
cmp byte [esi + 6], 0x4d
jne 0x53e452
cmp byte [esi + 7], 0x41
jne 0x53e452
mov dword [esp + 0x14], edi
cmp edx, eax
jne 0x53e619
mov dword [ebx + 0x120], 1
movzx ecx, byte [ebp]
movzx eax, byte [ebp + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebp + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebp + 3]
shl ecx, 8
add ecx, eax
mov dword [ebx + 0x124], ecx
mov dword [ebx + 0x190], 0
jmp 0x53e5ab
mov eax, str.cHRM
lea esp, [esp]
inc eax
cmp byte [eax], cl
jne 0x53e45b
sub eax, str.cHRM
cmp eax, 4
jne 0x53e495
cmp byte [esi + 4], 0x63
jne 0x53e495
cmp byte [esi + 5], 0x48
jne 0x53e495
cmp byte [esi + 6], 0x52
jne 0x53e495
cmp byte [esi + 7], 0x4d
jne 0x53e495
push edx
lea ecx, [ebx + 0x98]
mov edx, ebp
call fcn.0053acf5
jmp 0x53e59a
mov eax, str.sRGB
nop
inc eax
cmp byte [eax], cl
jne 0x53e49b
sub eax, str.sRGB
cmp eax, 4
jne 0x53e4ea
cmp byte [esi + 4], 0x73
jne 0x53e4ea
cmp byte [esi + 5], 0x52
jne 0x53e4ea
cmp byte [esi + 6], 0x47
jne 0x53e4ea
cmp byte [esi + 7], 0x42
jne 0x53e4ea
mov dword [esp + 0x14], edi
cmp edx, 1
jne 0x53e625
mov dword [ebx + 0x14c], edx
movzx eax, byte [ebp]
mov dword [ebx + 0x150], eax
mov dword [ebx + 0x190], ecx
jmp 0x53e5af
mov eax, str.iCCP
inc eax
cmp byte [eax], cl
jne 0x53e4ef
sub eax, str.iCCP
cmp eax, 4
jne 0x53e52a
cmp byte [esi + 4], 0x69
jne 0x53e52a
cmp byte [esi + 5], 0x43
jne 0x53e52a
cmp byte [esi + 6], 0x43
jne 0x53e52a
cmp byte [esi + 7], 0x50
jne 0x53e52a
push edx
push ebp
lea ecx, [ebx + 0x98]
mov edx, ebx
call fcn.0053ab03
add esp, 8
jmp 0x53e59d
mov eax, str.sBIT
inc eax
cmp byte [eax], cl
jne 0x53e52f
sub eax, str.sBIT
cmp eax, 4
jne 0x53e566
cmp byte [esi + 4], 0x73
jne 0x53e566
cmp byte [esi + 5], 0x42
jne 0x53e566
cmp byte [esi + 6], 0x49
jne 0x53e566
cmp byte [esi + 7], 0x54
jne 0x53e566
push edx
lea ecx, [ebx + 0x98]
mov edx, ebp
call fcn.0053a919
jmp 0x53e59a
cmp dword [ebx + 0x1c], ecx
jne 0x53e575
test byte [esi + 4], 0x20
je 0x53e631
cmp dword [ebx + 0x2c], 0
mov ecx, 1
mov dword [esp + 0x10], ecx
je 0x53e5af
mov ebp, dword [esp + 0x1c]
push esi
lea edx, [ebp + 0x60]
lea ecx, [ebp + 0x5d]
lea edx, [ebx + edx*4]
lea ecx, [ebx + ecx*4]
call fcn.0053a7e0
add esp, 4
mov dword [ebx + 0x190], eax
test eax, eax
jne 0x53e677
mov ecx, dword [esp + 0x10]
cmp dword [ebx + 0x18], 0
jne 0x53e5c4
test ecx, ecx
jne 0x53e5c4
mov ecx, esi
call fcn.0053a768
test eax, eax
jne 0x53e63d
cmp byte [esp + 0x1b], 0
jne 0x53e677
mov ebp, dword [esp + 0xe4]
mov ecx, esi
mov edx, dword [esp + 0xe0]
lea edx, [edx + ebp]
call fcn.0053a6ee
mov esi, eax
mov eax, dword [esp + 0xe0]
jmp 0x53dfbb
mov dword [ebx + 0x190], 0x5f
jmp 0x53e677
mov dword [ebx + 0x190], 0x49
jmp 0x53e677
mov dword [ebx + 0x190], 0x4a
jmp 0x53e677
mov dword [ebx + 0x190], 0x60
jmp 0x53e677
mov dword [ebx + 0x190], 0x62
jmp 0x53e677
mov dword [ebx + 0x190], 0x45
jmp 0x53e677
mov dword [ebx + 0x190], 0x39
jmp 0x53e677
mov dword [ebx + 0x190], 0x40
jmp 0x53e677
cmp dword [ebx + 0x20], 0
jne 0x53e677
mov dword [ebx + 0x190], 0x3f
jmp 0x53e677
cmp dword [ebx + 0x20], 0
jne 0x53e677
mov dword [ebx + 0x190], 0x1e
cmp dword [ebx + 0x190], 0
jne 0x53e84a
cmp dword [ebx + 0xa4], 3
lea esi, [ebx + 0xa4]
jne 0x53e6ab
cmp dword [ebx + 0xac], 0
jne 0x53e6ab
mov dword [ebx + 0x190], 0x6a
jmp 0x53e84e
mov eax, dword [esp + 0x24]
mov ecx, dword [esi]
mov edx, dword [eax]
mov eax, dword [esp + 0xd8]
mov ebp, dword [eax]
call fcn.0053d7ef
cmp dword [ebx + 0xa0], 0
jne 0x53e6ed
imul eax, dword [esi + 4]
mov esi, edx
and esi, 7
shr edx, 3
imul esi, eax
imul edx, eax
add esi, 7
shr esi, 3
inc esi
add esi, edx
imul esi, ebp
jmp 0x53e80e
mov edi, eax
lea ecx, [edx + 7]
imul edi, dword [esi + 4]
lea ebx, [ebp + 7]
shr ecx, 3
mov esi, ecx
shr ebx, 3
and esi, 7
shr ecx, 3
mov dword [esp + 0x1c], ebx
imul esi, edi
imul ecx, edi
add esi, 7
shr esi, 3
inc esi
add esi, ecx
imul esi, ebx
lea ebx, [edx + 3]
cmp edx, 4
jbe 0x53e748
mov ecx, ebx
shr ecx, 3
mov eax, ecx
shr ecx, 3
and eax, 7
imul ecx, edi
imul eax, edi
add eax, 7
shr eax, 3
inc eax
add eax, ecx
imul eax, dword [esp + 0x1c]
add esi, eax
shr ebx, 2
lea eax, [ebp + 3]
mov ecx, ebx
shr eax, 3
and ecx, 7
shr ebx, 3
imul ecx, edi
imul ebx, edi
add ecx, 7
shr ecx, 3
inc ecx
add ecx, ebx
lea ebx, [edx + 1]
imul ecx, eax
add esi, ecx
cmp edx, 2
jbe 0x53e79c
mov ecx, ebx
shr ecx, 2
mov eax, ecx
shr ecx, 3
and eax, 7
imul ecx, edi
imul eax, edi
add eax, 7
shr eax, 3
inc eax
add eax, ecx
lea ecx, [ebp + 3]
shr ecx, 2
imul eax, ecx
add esi, eax
shr ebx, 1
mov ecx, ebx
shr ebx, 3
and ecx, 7
imul ebx, edi
imul ecx, edi
add ecx, 7
shr ecx, 3
inc ecx
add ecx, ebx
lea ebx, [ebp + 1]
mov eax, ebx
shr eax, 2
imul ecx, eax
add esi, ecx
cmp edx, 1
jbe 0x53e7e9
mov ecx, edx
shr ebx, 1
shr ecx, 1
mov eax, ecx
shr ecx, 3
and eax, 7
imul ecx, edi
imul eax, edi
add eax, 7
shr eax, 3
inc eax
add eax, ecx
imul eax, ebx
add esi, eax
mov ebx, dword [esp + 0xdc]
mov eax, edx
and eax, 7
shr edx, 3
imul eax, edi
imul edx, edi
shr ebp, 1
add eax, 7
shr eax, 3
inc eax
add eax, edx
imul eax, ebp
add esi, eax
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x34]
push ebx
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x34]
push eax
push esi
call fcn.0053cf35
add esp, 0x10
mov dword [ebx + 0x190], eax
test eax, eax
jne 0x53e84a
cmp dword [esp + 0x34], esi
mov esi, dword [esp + 0x28]
je 0x53e84e
mov dword [ebx + 0x190], 0x5b
jmp 0x53e84e
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
add eax, 0xfffffffc
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
call ebx
mov ebp, dword [esp + 0xdc]
mov eax, dword [ebp + 0x190]
test eax, eax
jne 0x53e916
mov ecx, dword [esi]
call fcn.0053d7ef
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xd8]
imul eax, dword [esi + 4]
mov ecx, dword [ecx]
imul ecx, dword [edx]
mov edi, ecx
shr ecx, 3
and edi, 7
imul ecx, eax
imul edi, eax
add edi, 7
shr edi, 3
add edi, ecx
lea eax, [edi + 4]
test eax, eax
jne 0x53e8cd
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x190], 0x53
mov dword [eax], 0
jmp 0x53eaa4
push eax
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov eax, dword [ebp + 0x190]
test esi, esi
je 0x53e8fd
mov dword [esi], edi
mov ecx, edi
add esi, 4
mov edx, esi
call fcn.0055d86a
mov eax, dword [ebp + 0x190]
mov ecx, dword [esp + 0x30]
mov dword [ecx], esi
test esi, esi
jne 0x53e91c
mov dword [ebp + 0x190], 0x53
jmp 0x53eaa4
mov ecx, dword [esp + 0x30]
xor edi, edi
test eax, eax
jne 0x53eaa4
mov edx, dword [ecx]
mov ecx, edi
call fcn.0055d86a
mov eax, dword [esp + 0xd8]
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [eax]
mov eax, dword [esp + 0x24]
mov ecx, dword [esi]
mov dword [esp + 0x20], ebx
mov edx, dword [eax]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
mov dword [esp + 0x24], eax
call fcn.0053d7ef
mov edi, eax
imul edi, dword [esi + 4]
test edi, edi
jne 0x53e96f
lea eax, [edi + 0x1f]
jmp 0x53ea91
mov eax, dword [esp + 0xdc]
cmp dword [eax + 0xa0], 0
jne 0x53e9e7
cmp edi, 8
jae 0x53e9c7
mov esi, edi
imul esi, edx
lea ebx, [esi + 7]
and ebx, 0xfffffff8
cmp esi, ebx
je 0x53e9c3
push edi
mov edi, dword [esp + 0x24]
push edi
push edx
mov edx, dword [esp + 0x38]
mov ecx, edx
call fcn.0053a674
add esp, 0xc
test eax, eax
jne 0x53ea91
mov ecx, dword [esp + 0x24]
mov edx, ebp
push edi
push ebx
push esi
call fcn.00539847
jmp 0x53ea8c
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
push edi
push ebx
push edx
mov edx, dword [esp + 0x38]
call fcn.0053a674
add esp, 0xc
test eax, eax
je 0x53ea8f
jmp 0x53ea91
push edi
push ebx
push edx
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0xa4]
push eax
lea edx, [esp + 0x50]
lea ecx, [esp + 0x6c]
call fcn.005396b4
add esp, 0x18
xor esi, esi
lea esp, [esp]
mov eax, dword [esp + esi + 0x70]
mov edx, dword [esp + esi + 0x90]
add eax, ebp
mov ebx, dword [esp + esi + 0x54]
add edx, ebp
push edi
push dword [esp + esi + 0x3c]
mov ecx, eax
mov dword [esp + 0x24], eax
push ebx
call fcn.0053a674
add esp, 0xc
test eax, eax
jne 0x53ea91
cmp edi, 8
jae 0x53ea6f
push dword [esp + esi + 0x38]
mov ecx, dword [esp + esi + 0xb4]
mov edx, dword [esp + 0x20]
add ecx, ebp
imul ebx, edi
lea eax, [ebx + 7]
and eax, 0xfffffff8
push eax
push ebx
call fcn.00539847
add esp, 0xc
add esi, 4
cmp esi, 0x1c
jne 0x53ea1b
mov ecx, dword [esp + 0x24]
mov edx, ebp
push edi
mov edi, dword [esp + 0x24]
push edi
push dword [esp + 0x1c]
call fcn.00539400
add esp, 0xc
xor eax, eax
mov ecx, dword [esp + 0xdc]
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [ecx + 0x190], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x53eaf3
add eax, 0xfffffffc
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc4
ret
mov eax, dword [esp + 0xdc]
mov dword [eax + 0x190], 0x53
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc4
ret
mov eax, dword [esp + 0xdc]
mov dword [eax + 0x190], 0x5c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc4
ret