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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x53b0e6
add esp, 0xffffff80
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x10]
test edx, edx
jne 0x53b070
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x88]
xor esi, esi
mov edi, esi
movzx esi, byte [ecx + 4]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x53a79c
jmp 0x53a7a6
dec ebx
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add ebp, ebx
mov ebx, esi
test ebx, ebx
jle 0x53a7a6
cmp byte [ebp], 0x2e
je 0x53a78d
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], ebx
test eax, eax
je 0x53afda
mov dword [esp + 0x30], eax
mov esi, edi
lea edi, [esp + 0x60]
xor eax, eax
call fcn.0045e1f8
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebx
mov eax, dword [esp + 0x30]
jmp 0x53a7f1
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x88]
mov esi, ecx
mov edx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], edx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x74]
lea edi, [esp + 0x60]
cmp dword [edi + 4], ecx
jle 0x53aae2
xchg esi, eax
mov byte [esp + 0x22], al
xchg esi, eax
mov dword [esp], edi
call fcn.0053bac0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 4]
test ecx, ecx
jne 0x53a944
mov edx, dword [esp + 0x30]
test edx, edx
je 0x53a8ca
mov eax, dword [esp + 0x50]
movzx ecx, byte [esp + 0x22]
mov dword [esp + 0x30], edx
mov ebx, dword [esp + 0x7c]
lea ebp, [ebx + 1]
mov dword [esp + 0x7c], ebp
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
test esi, esi
je 0x53a892
cmp edi, ebp
jg 0x53a869
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x74], ebx
jmp 0x53a7db
lea edx, [edi - 1]
cmp ebp, edx
jne 0x53a889
cmp edi, ebp
jbe 0x53b0d2
lea edx, [esi + ebx*8 + 8]
mov edx, dword [edx + 4]
test edx, edx
jne 0x53a889
mov edx, dword [esp + 0x30]
jmp 0x53a85c
mov edx, dword [esp + 0x30]
jmp 0x53a7db
mov ebx, dword [esp + 0x78]
lea ebp, [ebx + 1]
mov dword [esp + 0x74], ebp
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
lea edx, [esi - 1]
cmp ebp, edx
jne 0x53a8c1
cmp esi, ebp
jbe 0x53b0c9
lea edx, [ebx + edi + 1]
cmp byte [edx], 0x2e
jne 0x53a8c1
mov dword [esp + 0x74], esi
mov edx, dword [esp + 0x30]
jmp 0x53a7db
mov ebx, dword [esp + 0x84]
movzx ebp, byte [ebx + 3]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x53a834
lea eax, [0x5d50c0]
mov dword [esp], eax
call fcn.0040b8e0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x8c]
mov dword [edi + 4], eax
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x53a92b
mov edx, dword [esp + 0x88]
mov dword [edi], edx
mov dword [edi + 0xc], 2
lea ebx, [0x5eb323]
mov dword [edi + 8], ebx
lea edx, [0x63a210]
mov eax, edi
jmp 0x53a838
mov ecx, eax
mov eax, dword [esp + 0x88]
call fcn.0045df70
mov eax, ecx
mov edx, dword [esp + 0x88]
jmp 0x53a90e
cmp ecx, 4
jge 0x53aaae
xor edx, edx
test dl, dl
jne 0x53a98a
mov edx, dword [esp + 0x30]
test edx, edx
je 0x53a969
mov eax, dword [esp + 0x50]
movzx ecx, byte [esp + 0x22]
jmp 0x53a83d
mov edx, dword [esp + 0x84]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0053bed0
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
jmp 0x53a95f
cmp ecx, 4
jb 0x53b0db
add ecx, 0xfffffffc
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
add eax, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0053c390
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x53a9de
mov edx, dword [esp + 0x30]
test edx, edx
je 0x53a9d8
mov eax, dword [esp + 0x50]
movzx ecx, byte [esp + 0x22]
jmp 0x53a83d
mov edx, eax
mov eax, ebx
jmp 0x53a9ce
mov dword [esp + 0x24], edx
mov dword [esp + 0x44], ecx
movzx eax, byte [esp + 0x22]
test al, al
je 0x53aa8c
mov eax, 1
mov byte [esp + 0x22], al
lea ebx, [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0053bba0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x53aa57
mov ecx, dword [esp + 0x50]
test eax, eax
je 0x53aa2e
mov edx, eax
mov eax, ecx
movzx ecx, byte [esp + 0x22]
jmp 0x53a83d
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 8], ecx
call fcn.0053bed0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x53aa20
mov ebx, dword [esp + 0x84]
movzx ebp, byte [ebx + 2]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x53aa18
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov dword [esp], ebx
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
mov ebp, dword [esp + 0x24]
mov dword [esp + 8], ebp
call eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x53aa1c
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.00533790
mov eax, dword [esp + 8]
test eax, eax
setne al
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
jmp 0x53a9f8
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov dword [esp], eax
lea ecx, [0x5eb82b]
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
call fcn.00402890
movzx edx, byte [esp + 0xc]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
jmp 0x53a94f
xchg esi, eax
test al, al
xchg esi, eax
je 0x53afce
mov ecx, dword [esp + 0x84]
mov esi, dword [ecx + 0x14]
test esi, esi
je 0x53ab02
test eax, eax
je 0x53ae64
movzx ebx, byte [esp + 0x90]
test bl, bl
je 0x53ad22
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
jmp 0x53ac06
inc edx
cmp edx, ecx
jge 0x53ad0f
jae 0x53b0b8
lea ebx, [edx + eax]
cmp byte [ebx], 0x80
jb 0x53ab2f
lea edx, [0x5eb82b]
mov dword [esp], edx
mov dword [esp + 4], 4
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0053cc60
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x40]
test ebp, ebp
je 0x53ad06
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], ecx
lea ebx, [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0053bba0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x84]
movzx esi, byte [ebp + 3]
xchg esi, eax
test al, al
xchg esi, eax
je 0x53abd1
test edx, edx
je 0x53ac99
mov esi, dword [esp + 0x7c]
lea eax, [esi + 1]
mov dword [esp + 0x7c], eax
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
test edi, edi
je 0x53ac5e
cmp eax, ecx
jl 0x53ac32
mov eax, dword [esp + 0x64]
mov dword [esp + 0x74], eax
mov ecx, ebp
lea edi, [esp + 0x60]
mov eax, edx
mov edx, ebx
movzx ebx, byte [esp + 0x90]
mov ebp, dword [esp + 0x74]
cmp dword [edi + 4], ebp
jle 0x53ad22
mov dword [esp + 0x5c], edx
mov dword [esp + 0x40], eax
mov dword [esp], edi
call fcn.0053bac0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 4]
xor edx, edx
jmp 0x53ab30
lea ebp, [ecx - 1]
cmp eax, ebp
jne 0x53ac55
cmp eax, ecx
jae 0x53b0b3
lea eax, [edi + esi*8 + 8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x53ac55
mov ebp, dword [esp + 0x84]
jmp 0x53abec
mov ebp, dword [esp + 0x84]
jmp 0x53abf4
mov esi, dword [esp + 0x78]
lea eax, [esi + 1]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
lea ebp, [ecx - 1]
cmp eax, ebp
jne 0x53ac8d
cmp ecx, eax
jbe 0x53b0ae
lea eax, [esi + edi + 1]
cmp byte [eax], 0x2e
jne 0x53ac8d
mov dword [esp + 0x74], ecx
mov ebp, dword [esp + 0x84]
jmp 0x53abf4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], ecx
test eax, eax
je 0x53acae
cmp eax, 0x3f
jle 0x53abd1
lea eax, [0x5d50c0]
mov dword [esp], eax
call fcn.0040b8e0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x2c]
mov dword [edi + 4], eax
mov eax, dword [0x770e60]
test eax, eax
jne 0x53acfb
mov edx, dword [esp + 0x4c]
mov dword [edi], edx
mov dword [edi + 0xc], 2
lea esi, [0x5eb323]
mov dword [edi + 8], esi
mov ebp, dword [esp + 0x84]
lea edx, [0x63a210]
mov ebx, edi
jmp 0x53abd1
mov eax, dword [esp + 0x4c]
call fcn.0045df70
jmp 0x53acd7
mov ebp, edx
mov edx, ebx
jmp 0x53ab84
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x5c]
mov ebp, eax
mov eax, ecx
mov ecx, ebp
jmp 0x53abb8
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x70]
test ebp, ebp
jne 0x53ae14
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
test bl, bl
je 0x53ad4e
movzx ecx, byte [ecx + 3]
test cl, cl
je 0x53ad4e
test eax, eax
je 0x53ad6e
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
sub esp, 0xffffff80
ret
test esi, esi
jle 0x53ae0d
lea ecx, [esi + ebp - 1]
cmp byte [ecx], 0x2e
jne 0x53ae0d
lea ecx, [esi - 1]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x88], ebp
cmp esi, 1
jge 0x53adfb
lea eax, [0x5d50c0]
mov dword [esp], eax
call fcn.0040b8e0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x3c]
mov dword [edi + 4], eax
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x53ade5
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
mov dword [edi + 0xc], 2
lea edx, [0x5eb323]
mov dword [edi + 8], edx
lea edx, [0x63a210]
mov ebp, ecx
mov esi, eax
mov eax, edx
mov edx, edi
jmp 0x53ad4e
mov ecx, eax
mov eax, dword [esp + 0x88]
call fcn.0045df70
mov edx, eax
mov eax, ecx
mov ecx, edx
jmp 0x53adc2
cmp ecx, 0xfd
jg 0x53ad96
mov ecx, ebp
mov edi, edx
mov edx, eax
mov eax, esi
jmp 0x53add8
mov ecx, esi
jmp 0x53ad86
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], edx
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edi
lea eax, [0x5eb2bc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
call fcn.004c8290
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
movzx eax, byte [esp + 0x90]
test al, al
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x58]
jmp 0x53ad40
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
jmp 0x53ae9f
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x88]
lea edi, [esp + 0x60]
mov esi, dword [esp + 0x74]
cmp dword [edi + 4], esi
jle 0x53afca
mov dword [esp], edi
call fcn.0053bac0
mov eax, dword [esp + 0x84]
mov edx, dword [eax + 0x14]
mov ecx, dword [edx]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call ecx
movzx eax, byte [esp + 8]
test al, al
je 0x53af65
mov edx, dword [esp + 0x7c]
lea eax, [edx + 1]
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
test ebx, ebx
je 0x53af29
cmp eax, ecx
jl 0x53af06
mov eax, dword [esp + 0x64]
mov dword [esp + 0x74], eax
jmp 0x53ae7e
lea ebp, [ecx - 1]
cmp eax, ebp
jne 0x53ae7e
cmp eax, ecx
jae 0x53b0c4
lea eax, [ebx + edx*8 + 8]
mov eax, dword [eax + 4]
test eax, eax
je 0x53aef9
jmp 0x53ae7e
mov edx, dword [esp + 0x78]
lea eax, [edx + 1]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
lea ebp, [ecx - 1]
cmp eax, ebp
jne 0x53ae7e
cmp eax, ecx
jae 0x53b0bf
lea eax, [ebx + edx + 1]
cmp byte [eax], 0x2e
jne 0x53ae7e
mov dword [esp + 0x74], ecx
jmp 0x53ae7e
lea eax, [0x5d50c0]
mov dword [esp], eax
call fcn.0040b8e0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x8c]
mov dword [edi + 4], eax
mov eax, dword [0x770e60]
test eax, eax
jne 0x53afbc
mov eax, dword [esp + 0x88]
mov dword [edi], eax
mov dword [edi + 0xc], 1
lea ecx, [0x6360eb]
mov dword [edi + 8], ecx
lea eax, [0x63a210]
mov ecx, dword [esp + 0x84]
mov edx, edi
lea edi, [esp + 0x60]
jmp 0x53ab02
mov eax, dword [esp + 0x88]
call fcn.0045df70
jmp 0x53af94
mov edi, edx
jmp 0x53afaa
mov ecx, dword [esp + 0x84]
jmp 0x53ab02
movzx esi, byte [ecx + 3]
xchg esi, eax
test al, al
xchg esi, eax
je 0x53a7bc
test ebx, ebx
jne 0x53a7bc
xchg edi, eax
mov byte [esp + 0x23], al
xchg edi, eax
lea eax, [0x5d50c0]
mov dword [esp], eax
call fcn.0040b8e0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x8c]
mov dword [edi + 4], eax
mov ecx, dword [0x770e60]
test ecx, ecx
jne 0x53b057
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
mov dword [edi + 0xc], 2
lea esi, [0x5eb323]
mov dword [edi + 8], esi
mov ecx, dword [esp + 0x84]
mov ebx, eax
mov ebp, dword [esp + 0x88]
lea eax, [0x63a210]
mov edx, edi
movzx edi, byte [esp + 0x23]
jmp 0x53a7bc
mov ecx, eax
mov eax, dword [esp + 0x88]
call fcn.0045df70
mov eax, ecx
mov ecx, dword [esp + 0x88]
jmp 0x53b025
mov eax, dword [edx]
mov dword [esp], ecx
mov ebx, dword [esp + 0x88]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 8], ebx
call eax
movzx esi, byte [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x84]
jmp 0x53a77f
call fcn.0045dff0
call fcn.0045dff0
mov eax, edx
call fcn.0045dff0
call fcn.0045dff0
call fcn.0045dff0
mov eax, ebp
mov ecx, esi
call fcn.0045dff0
mov eax, ebp
mov ecx, edi
call fcn.0045dff0
mov eax, 4
call fcn.0045e050
nop
call fcn.0045ca10
jmp fcn.0053a740