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

Disassembly:
sub esp, 0x9ec
movzx eax, byte [esp + 0xa18]
lea edx, [esp + 0xf0]
mov dword [esp + 0x9e8], ebp
mov dword [esp + 0x9dc], ebx
mov dword [esp + 0x9e0], esi
mov dword [esp + 0x9e4], edi
mov ebp, dword [esp + 0x9f0]
mov byte [esp + 0x5f], al
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0x117
mov dword [esp + 0x7c], 0
mov dword [esp + 8], 0x81
mov dword [esp + 4], 0
mov dword [esp], edx
call fcn.00a5b648
cmp dword [esp + 0x9f4], 3
jle 0x52375a
movzx esi, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
shl esi, 8
lea ebx, [esi + ecx]
lea esi, [ebx + 3]
cmp esi, dword [esp + 0x9f4]
jle 0x52377d
mov ebx, dword [esp + 0x9dc]
mov esi, dword [esp + 0x9e0]
mov edi, dword [esp + 0x9e4]
mov ebp, dword [esp + 0x9e8]
add esp, 0x9ec
ret
lea ecx, [esp + 0x980]
lea edi, [esp + 0x980]
mov dword [esp + 8], 0x41
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.00a5b648
cmp ebx, 0x41
mov eax, 0x40
lea edx, [ebp + 3]
cmovl eax, ebx
mov dword [esp], edi
lea edi, [ebx + 5]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
call fcn.00a5b5c0
cmp edi, dword [esp + 0x9f4]
jge 0x52375a
movzx eax, byte [ebp + ebx + 3]
movzx edx, byte [ebp + esi + 1]
shl eax, 8
lea ebx, [eax + edx]
lea esi, [edi + ebx]
cmp esi, dword [esp + 0x9f4]
jg 0x52375a
lea eax, [esp + 0x8f0]
mov dword [esp + 8], 0x81
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00a5b648
cmp ebx, 0x81
mov edx, 0x80
lea ecx, [edi + ebp]
mov dword [esp + 0x58], 0x80
cmovl edx, ebx
lea ebx, [esp + 0x8f0]
mov dword [esp + 4], ecx
mov dword [esp], ebx
lea ebx, [esi + 2]
mov dword [esp + 8], edx
call fcn.00a5b5c0
cmp ebx, dword [esp + 0x9f4]
jge 0x52375a
movzx ecx, byte [esi + ebp]
movzx edi, byte [ebp + esi + 1]
shl ecx, 8
lea edx, [ecx + edi]
lea esi, [ebx + edx]
cmp esi, dword [esp + 0x9f4]
jg 0x52375a
xor eax, eax
cld
mov ecx, 2
lea edi, [esp + 0x8e0]
cmp edx, 0xb
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, 0xa
lea edi, [ebx + ebp]
cmovl eax, edx
lea edx, [esp + 0x8e0]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp], edx
call fcn.00a5b5c0
mov ebx, dword [esp + 0xa2c]
test ebx, ebx
je 0x5238c9
lea edx, [esp + 0x8e0]
mov ebx, dword [esp + 0xa2c]
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.00a5b628
lea ebx, [esi + 2]
cmp ebx, dword [esp + 0x9f4]
jge 0x52375a
movzx eax, byte [esi + ebp]
movzx edi, byte [ebp + esi + 1]
shl eax, 8
lea esi, [eax + edi]
lea edi, [ebx + esi]
cmp edi, dword [esp + 0x9f4]
jg 0x52375a
mov edx, dword [esp + 0xa14]
mov dword [esp + 8], 0x81
mov dword [esp + 4], 0
mov dword [esp], edx
call fcn.00a5b648
cmp esi, 0x81
cmovge esi, dword [esp + 0x58]
lea ecx, [ebx + ebp]
mov dword [esp + 0x58], esi
mov dword [esp + 8], esi
mov esi, dword [esp + 0xa14]
mov dword [esp], esi
lea esi, [edi + 2]
mov dword [esp + 4], ecx
call fcn.00a5b5c0
cmp esi, dword [esp + 0x9f4]
jge 0x52375a
movzx eax, byte [edi + ebp]
movzx ecx, byte [ebp + edi + 1]
shl eax, 8
lea ebx, [eax + ecx]
lea edi, [esi + ebx]
cmp edi, dword [esp + 0x9f4]
jg 0x52375a
lea edx, [esp + 0x6d0]
mov dword [esp + 8], 0x201
mov dword [esp + 4], 0
mov dword [esp], edx
call fcn.00a5b648
cmp ebx, 0x201
mov ecx, 0x200
lea edi, [esi + ebp]
lea eax, [esp + 0x6d0]
cmovl ecx, ebx
mov dword [esp + 4], edi
lea ebx, [esp + 0x980]
mov dword [esp + 8], ecx
lea ebp, [esp + 0x8e0]
mov dword [esp], eax
call fcn.00a5b5c0
mov esi, dword [esp + 0xa34]
lea edx, [esp + 0x8f0]
mov dword [esi], 0
mov dword [esp + 0x10], ebx
mov dword [esp + 8], ebp
mov ebx, 8
lea ebp, [esp + 0x2d0]
mov dword [esp + 0x18], edx
mov dword [esp], ebp
mov dword [esp + 0x14], 0xc3a238
mov dword [esp + 0xc], 0xc3a23e
mov dword [esp + 4], 0xc3a242
lea edi, [esp + 0x2a0]
call fcn.00a5b560
cld
xor eax, eax
mov ecx, ebx
rep stosd dword es:[edi], eax
mov ecx, 0xffffffff
lea esi, [esp + 0x2a0]
stosb byte es:[edi], al
mov edi, ebp
repne scasb al, byte es:[edi]
lea edi, [esp + 0x8f0]
lea eax, [esp + 0x980]
not ecx
mov dword [esp + 0x24], esi
mov dword [esp + 8], ebp
sub ecx, 1
mov dword [esp + 4], edi
mov dword [esp + 0x2c], 0xa
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], 0x20
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0xc3a0b8
mov dword [esp + 0x14], 8
mov dword [esp + 0x10], 0xc3a24d
mov dword [esp], eax
call dword [0x128c610]
sub esp, 0x30
mov edx, dword [esp + 0xa00]
mov byte [esp + 0x2b0], 0
mov dword [esp + 8], 0x100
mov dword [esp], edx
mov dword [esp + 4], 0
call fcn.00a5b648
mov esi, dword [esp + 0xa04]
mov dword [esp + 8], 0x100
mov dword [esp + 4], 0
mov dword [esp], esi
lea edi, [esp + 0x270]
call fcn.00a5b648
cld
xor eax, eax
mov ecx, ebx
rep stosd dword es:[edi], eax
mov ecx, ebx
lea esi, [esp + 0x210]
stosb byte es:[edi], al
lea edi, [esp + 0x240]
rep stosd dword es:[edi], eax
mov ecx, ebx
lea ebx, [esp + 0x180]
stosb byte es:[edi], al
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov dword [esp], ebx
lea edi, [esp + 0x6d0]
mov dword [esp + 8], 0x81
mov dword [esp + 4], 0
call fcn.00a5b648
cld
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
lea edx, [esp + 0x8f0]
lea edi, [esp + 0x2a0]
not ecx
lea eax, [esp + 0x980]
mov dword [esp + 0x24], ebp
sub ecx, 1
mov dword [esp + 0x10], edi
mov dword [esp + 4], edx
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x6d0]
mov dword [esp + 0x2c], 7
mov dword [esp + 8], ecx
mov dword [esp + 0x28], 0x400
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0xc3a0b8
mov dword [esp + 0x14], 0x10
mov dword [esp], eax
call dword [0x128c610]
sub esp, 0x30
mov ebx, dword [esp + 0xa28]
mov edi, dword [esp + 0xa24]
mov ecx, dword [esp + 0xa20]
mov edx, dword [esp + 0xa34]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ecx
mov edi, dword [esp + 0xa30]
mov dword [esp + 0x34], edx
lea ebx, [esp + 0x7c]
lea ecx, [esp + 0x78]
mov dword [esp + 0x24], esi
lea edx, [esp + 0x240]
lea esi, [esp + 0x74]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], esi
lea ecx, [esp + 0x6c]
mov esi, dword [esp + 0xa04]
mov dword [esp + 0x1c], edx
lea ebx, [esp + 0x270]
mov edx, dword [esp + 0xa00]
lea edi, [esp + 0x70]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00523373
mov ebx, dword [esp + 0x980]
mov edx, dword [esp + 0x9f8]
mov dword [edx], ebx
mov ebp, dword [esp + 0x984]
mov dword [edx + 4], ebp
mov eax, dword [esp + 0x988]
mov dword [edx + 8], eax
mov edi, dword [esp + 0x98c]
mov dword [edx + 0xc], edi
mov ecx, dword [esp + 0x990]
mov dword [edx + 0x10], ecx
mov esi, dword [esp + 0x994]
mov dword [edx + 0x14], esi
mov ebx, dword [esp + 0x998]
mov dword [edx + 0x18], ebx
mov ebp, dword [esp + 0x99c]
mov dword [edx + 0x1c], ebp
mov eax, dword [esp + 0x9a0]
mov dword [edx + 0x20], eax
mov edi, dword [esp + 0x9a4]
mov dword [edx + 0x24], edi
mov ecx, dword [esp + 0x9a8]
mov dword [edx + 0x28], ecx
mov esi, dword [esp + 0x9ac]
mov dword [edx + 0x2c], esi
lea esi, [esp + 0x8f0]
mov ebx, dword [esp + 0x9b0]
mov dword [edx + 0x30], ebx
mov ebp, dword [esp + 0x9b4]
mov dword [edx + 0x34], ebp
mov eax, dword [esp + 0x9b8]
mov dword [edx + 0x38], eax
mov edi, dword [esp + 0x9bc]
mov dword [edx + 0x3c], edi
movzx ecx, byte [esp + 0x9c0]
mov byte [edx + 0x40], cl
mov ebx, dword [esp + 0x9fc]
mov dword [esp + 8], 0x81
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00a5b5c0
mov ebp, dword [esp + 0xa2c]
test ebp, ebp
je 0x5240f9
mov eax, dword [esp + 0xa38]
and eax, 1
jne 0x523f34
mov ebx, dword [esp + 0xa34]
mov ebp, 1
mov edx, dword [esp + 0xa20]
mov ecx, dword [ebx]
test cl, 8
cmovne eax, ebp
mov edi, eax
or edi, 2
test cl, 0x10
cmove edi, eax
mov eax, edi
or eax, 4
test cl, 0x20
cmove eax, edi
test byte [edx], 1
je 0x523d70
or ch, 0x10
mov dword [ebx], ecx
movzx edx, byte [esp + 0x5f]
mov esi, dword [esp + 0xa14]
mov dword [0x128c9d4], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], esi
mov ebx, dword [esp + 0xa34]
lea eax, [esp + 0x60]
lea edx, [esp + 0x180]
mov ecx, dword [ebx]
mov esi, dword [esp + 0xa04]
mov dword [esp + 0x18], eax
and ecx, 1
mov ebx, dword [esp + 0xa00]
lea eax, [esp + 0x980]
mov dword [esp + 0x2c], ecx
lea edi, [esp + 0xf0]
lea ecx, [esp + 0x8f0]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00521e5a
test eax, eax
je 0x52415f
mov edi, dword [esp + 0xa1c]
mov ecx, dword [esp + 0xa30]
mov esi, dword [edi]
or esi, 1
mov dword [edi], esi
mov edi, dword [esp + 0x60]
mov eax, dword [ecx]
test eax, eax
cmovle eax, ebp
lea ebx, [eax + 0x1fe]
sub eax, 1
mov ecx, eax
cmovs ecx, ebx
mov ebx, eax
sar ecx, 9
mov edx, ecx
shl edx, 9
sub ebx, edx
cmp ecx, 0x1f
jle 0x523e60
cmp ecx, 0xffffffff
lea edx, [ecx + 0x1f]
cmovg edx, ecx
and edx, 0xffffffe0
sub ecx, edx
shl ebp, cl
test ebp, edi
je 0x523efb
cmp ebx, 0xffffffff
lea ebp, [ebx + 3]
mov ecx, ebx
cmovg ebp, ebx
sar ebp, 2
lea eax, [ebp*4]
movzx edx, byte [esp + ebp + 0xf0]
sub ecx, eax
lea eax, [edx - 0x30]
cmp al, 9
jbe 0x523e9f
lea ebx, [edx - 0x61]
cmp bl, 5
ja 0x524172
lea eax, [edx - 0x57]
movzx eax, al
sar eax, cl
test al, 1
je 0x523efb
or esi, 2
mov ecx, dword [esp + 0xa1c]
mov dword [ecx], esi
lea edx, [esp + 0x180]
mov esi, dword [esp + 0xa08]
mov dword [esp + 8], 0x81
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.00a5b5c0
mov dword [esp], 6
call dword [0x128cab0]
sub esp, 4
mov dword [esp + 4], eax
mov dword [esp], 0x128ca30
call fcn.00a5b628
jmp 0x52375a
mov edi, dword [esp + 0xa1c]
and esi, 0xfffd
mov dword [edi], esi
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0xc3a0b9
mov dword [esp + 4], 0xc3a256
mov dword [esp], 0
call dword [0x128caa0]
sub esp, 0x10
jmp 0x523eb4
mov dword [esp], 0x10
call dword [0x128cab0]
cld
mov ecx, 0xffffffff
mov edi, eax
mov ebx, eax
xor eax, eax
repne scasb al, byte es:[edi]
sub esp, 4
mov edx, 0x80
not ecx
sub ecx, 1
cmp ecx, 0x80
ja 0x523f72
mov ecx, 0xffffffff
mov edi, ebx
repne scasb al, byte es:[edi]
not ecx
lea edx, [ecx - 1]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xa08]
mov dword [esp + 8], edx
mov dword [esp], ebx
call fcn.00a5b5c0
mov dword [esp], 0xf
call dword [0x128cab0]
mov ebx, 0xffffffff
xor edx, edx
mov edi, eax
mov ebp, eax
cld
mov eax, edx
mov ecx, ebx
sub esp, 4
repne scasb al, byte es:[edi]
mov edx, 0x80
not ecx
sub ecx, 1
cmp ecx, 0x80
ja 0x523fc8
mov ecx, ebx
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
lea edx, [ecx - 1]
lea edi, [esp + 0xf0]
mov dword [esp + 8], edx
mov dword [esp + 4], ebp
mov dword [esp], edi
call fcn.00a5b5c0
mov dword [esp], 0xe
call dword [0x128c620]
sub esp, 4
mov edi, eax
mov ebx, dword [esp + 0xa38]
mov ecx, dword [esp + 0xa1c]
mov esi, dword [esp + 0xa30]
mov dword [ecx], ebx
mov dword [esp + 0x60], eax
mov eax, dword [esi]
mov esi, 1
test eax, eax
cmovle eax, esi
lea edx, [eax + 0x1fe]
sub eax, 1
mov ecx, eax
mov ebx, eax
cmovs ecx, edx
sar ecx, 9
mov ebp, ecx
shl ebp, 9
sub ebx, ebp
cmp ecx, 0x1f
jle 0x524045
cmp ecx, 0xffffffff
lea ebp, [ecx + 0x1f]
cmovg ebp, ecx
and ebp, 0xffffffe0
sub ecx, ebp
shl esi, cl
test esi, edi
je 0x5240b0
cmp ebx, 0xffffffff
lea esi, [ebx + 3]
cmovg esi, ebx
sar esi, 2
lea edx, [esi*4]
sub ebx, edx
movzx edx, byte [esp + esi + 0xf0]
lea eax, [edx - 0x30]
cmp al, 9
mov ecx, eax
jbe 0x524088
lea eax, [edx - 0x61]
lea ecx, [edx - 0x57]
cmp al, 5
jbe 0x524088
lea eax, [edx - 0x41]
xor ecx, ecx
sub dl, 0x37
cmp al, 5
cmovbe ecx, edx
movzx eax, cl
mov ecx, ebx
sar eax, cl
test al, 1
je 0x5240b0
or dword [esp + 0xa38], 2
mov ebx, dword [esp + 0xa1c]
mov edi, dword [esp + 0xa38]
mov dword [ebx], edi
jmp 0x52375a
and dword [esp + 0xa38], 0xfffd
mov ebp, dword [esp + 0xa1c]
mov esi, dword [esp + 0xa38]
mov dword [ebp], esi
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0xc3a0b9
mov dword [esp + 4], 0xc3a256
mov dword [esp], 0
call dword [0x128caa0]
sub esp, 0x10
jmp 0x52375a
lea esi, [esp + 0x68]
lea ebp, [esp + 0x80]
lea edx, [esp + 0x64]
mov dword [esp + 4], esi
lea esi, [esp + 0xb0]
mov dword [esp + 8], ebp
mov dword [esp], edx
mov edi, esi
call fcn.00521d3a
cld
xor eax, eax
mov ecx, 0x10
rep stosd dword es:[edi], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 4], 0xc3a26a
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
call fcn.00a5b560
mov ebp, dword [esp + 0xa1c]
or dword [ebp], 4
jmp 0x523d25
mov ebp, dword [esp + 0xa1c]
and dword [ebp], 0xfffe
jmp 0x52375a
lea eax, [edx - 0x41]
sub dl, 0x37
cmp al, 5
mov eax, 0
cmovbe eax, edx
jmp 0x523e9f