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

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
mov esi, dword [esp + 0x3c]
push edi
mov eax, dword [esi]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 8]
push eax
call dword [eax + 0x20]
mov edx, dword [esi]
mov dword [esp + 0x14], eax
xor ebx, ebx
add esp, 4
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], ebx
jle 0x53e3ca
push 0x2f
push eax
call dword [eax + 0x74]
add esp, 8
test al, al
je 0x53e3ca
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov edx, eax
pop edi
pop esi
pop ebp
mov dword [edx], ecx
mov ecx, dword [esp + 0xc]
pop ebx
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0xc]
mov dword [edx + 8], ecx
add esp, 0x28
ret
mov edx, dword [esi]
push 1
mov eax, dword [edx + 8]
push eax
call dword [eax + 0x14]
mov ebp, eax
mov eax, dword [esi + 0x1a8]
push eax
call dword [eax + 0x10]
mov dword [esp + 0x4c], eax
mov eax, dword [esi]
push 1
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 8]
push eax
call dword [eax + 0x18]
add esp, 0x14
cmp eax, 8
jl 0x53e400
cmp eax, 0xb
jle 0x53e432
cmp eax, 0x1e
je 0x53e432
cmp eax, 0x30
je 0x53e432
cmp eax, 0x78
je 0x53e432
cmp eax, 0x8f
jl 0x53e41d
cmp eax, 0x90
jle 0x53e432
cmp eax, 0x65
jne 0x53e4b9
cmp dword [0x6d6a1c], ebx
jle 0x53e549
mov eax, 1
dec eax
je 0x53e5b6
dec eax
jne 0x53e640
mov eax, dword [esi]
push 0
push 0x660f38
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0x14]
lea eax, [esp + 0x2c]
push esi
push eax
call fcn.0052fc00
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x53e8d2
cmp byte [eax + 0x18], 1
jne 0x53e752
mov eax, dword [esp + 0x3c]
pop edi
mov edx, eax
pop esi
mov dword [edx], ebp
mov dword [edx + 4], ebp
pop ebp
mov dword [edx + 8], ebx
pop ebx
add esp, 0x28
ret
cmp eax, 4
jl 0x53e4c7
cmp eax, 7
jle 0x53e432
cmp eax, 0x10
je 0x53e432
cmp eax, 0x16
jl 0x53e4de
cmp eax, 0x19
jle 0x53e432
cmp eax, 0x1b
je 0x53e432
cmp eax, 0x2f
je 0x53e432
cmp eax, 0x8b
jl 0x53e502
cmp eax, 0x8c
jle 0x53e432
cmp eax, 0xc
je 0x53e5ac
cmp eax, 0xe
je 0x53e5ac
cmp eax, 0x11
je 0x53e5ac
cmp eax, 0x24
jl 0x53e52b
cmp eax, 0x25
jle 0x53e5ac
cmp eax, 0x2a
je 0x53e5ac
cmp eax, 0x2c
je 0x53e5ac
cmp eax, 0x32
je 0x53e5ac
cmp eax, 0x34
je 0x53e5ac
cmp eax, 0x43
jl 0x53e549
cmp eax, 0x44
jle 0x53e5ac
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], ebx
jg 0x53e9a5
push eax
call dword [eax + 0x88]
mov edx, dword [esi]
add esp, 4
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov dword [edx], 3
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 4]
mov dword [eax + 8], 0x669668
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 4]
mov dword [ecx + 0x34], 0x57
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov dword [edx + 0x38], ebx
jmp 0x53e8d2
mov eax, 2
jmp 0x53e437
mov edx, dword [esi]
push 0
push 0x660f20
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
push eax
call dword [eax + 0x14]
lea edx, [esp + 0x38]
push esi
push edx
call fcn.0052f3b0
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x53e8d2
cmp byte [eax + 0x18], 1
jne 0x53e626
mov eax, dword [esp + 0x3c]
pop edi
mov edx, eax
pop esi
mov dword [edx], ebp
mov dword [edx + 4], ebp
pop ebp
mov dword [edx + 8], ebx
pop ebx
add esp, 0x28
ret
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x53e640
mov ecx, dword [esp + 0x40]
mov eax, dword [esi + 0x1a8]
push edi
push ecx
push eax
call dword [eax + 0x1c]
add esp, 0xc
mov edx, dword [esi]
push 1
mov edi, 2
mov eax, dword [edx + 8]
mov eax, dword [eax + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 0x69
jne 0x53e660
mov edi, 1
dec edi
jne 0x53e8d2
mov ecx, dword [esi]
push 0x660f58
push 0x69
mov eax, dword [ecx + 4]
push eax
call dword [eax + 0x10]
mov eax, dword [esi]
add esp, 0xc
mov edx, dword [eax + 4]
mov ecx, dword [edx + 8]
cmp byte [ecx], 1
je 0x53e8d2
cmp byte [ecx + 0x18], 1
je 0x53e9a9
mov eax, dword [eax + 8]
push 1
mov eax, dword [eax + 8]
push eax
call dword [eax + 0x18]
add esp, 8
cmp eax, 8
jl 0x53e6ae
cmp eax, 0xb
jle 0x53e6e1
cmp eax, 0x1e
je 0x53e6e1
cmp eax, 0x30
je 0x53e6e1
cmp eax, 0x78
je 0x53e6e1
cmp eax, 0x8f
jl 0x53e6cb
cmp eax, 0x90
jle 0x53e6e1
cmp eax, 0x65
jne 0x53e762
mov eax, dword [0x6d6a1c]
test eax, eax
jle 0x53e86e
mov eax, 1
dec eax
je 0x53e7f4
dec eax
jne 0x53e640
mov ecx, dword [esi]
push 0
push 0x660f88
mov edx, dword [ecx + 4]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0xc]
push eax
call dword [eax + 0x14]
lea ecx, [esp + 0x38]
push esi
push ecx
call fcn.0052fc00
mov edx, dword [eax]
mov dword [esp + 0x28], edx
mov edx, dword [esi]
mov ecx, dword [eax + 4]
mov dword [esp + 0x2c], ecx
mov edi, dword [eax + 8]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
push eax
call dword [eax + 0xc]
mov edx, dword [esi]
add esp, 0x18
mov eax, dword [edx + 4]
mov eax, dword [eax + 8]
cmp byte [eax], 1
je 0x53e8d2
cmp byte [eax + 0x18], 1
je 0x53e9a9
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x53e640
jmp 0x53e62d
cmp eax, 4
jl 0x53e770
cmp eax, 7
jle 0x53e6e1
cmp eax, 0x10
je 0x53e6e1
cmp eax, 0x16
jl 0x53e787
cmp eax, 0x19
jle 0x53e6e1
cmp eax, 0x1b
je 0x53e6e1
cmp eax, 0x2f
je 0x53e6e1
cmp eax, 0x8b
jl 0x53e7ab
cmp eax, 0x8c
jle 0x53e6e1
cmp eax, 0xc
je 0x53e7ea
cmp eax, 0xe
je 0x53e7ea
cmp eax, 0x11
je 0x53e7ea
cmp eax, 0x24
jl 0x53e7c4
cmp eax, 0x25
jle 0x53e7ea
cmp eax, 0x2a
je 0x53e7ea
cmp eax, 0x2c
je 0x53e7ea
cmp eax, 0x32
je 0x53e7ea
cmp eax, 0x34
je 0x53e7ea
cmp eax, 0x43
jl 0x53e86e
cmp eax, 0x44
jg 0x53e86e
mov eax, 2
jmp 0x53e6e6
mov edx, dword [esi]
push 0
push 0x660f70
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc]
push eax
call dword [eax + 0x14]
lea edx, [esp + 0x2c]
push esi
push edx
call fcn.0052f3b0
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
push eax
call dword [eax + 0xc]
mov eax, dword [esi]
add esp, 0x18
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 8]
cmp byte [eax], 1
je 0x53e8d2
cmp byte [eax + 0x18], 1
je 0x53e9a9
mov ecx, dword [eax + 0x20]
test ecx, ecx
jne 0x53e640
mov edx, dword [esp + 0x40]
mov eax, dword [esi + 0x1a8]
push edi
push edx
jmp 0x53e639
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x20]
test edx, edx
jg 0x53e9a5
push eax
call dword [eax + 0x88]
mov edx, dword [esi]
add esp, 4
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov dword [edx], 3
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 4]
mov dword [eax + 8], 0x669668
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 4]
mov dword [ecx + 0x34], 0x58
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 4]
mov dword [edx + 0x38], 0
mov edx, dword [esi]
push 0xffffffffffffffff
mov eax, dword [edx + 8]
push eax
call dword [eax + 0x14]
mov edi, eax
mov eax, dword [esi]
add esp, 8
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [edx + 0x20]
test ecx, ecx
jne 0x53e920
mov eax, dword [eax + 8]
push 0xffffffffffffffff
push eax
call dword [eax + 0x14]
mov ecx, dword [esp + 0x48]
mov edi, eax
mov eax, dword [esi + 0x1a8]
push ecx
push eax
call dword [eax + 0x38]
mov ebx, eax
mov eax, dword [esi + 0x1a8]
push edi
push ebp
push ebx
push eax
call dword [eax + 0x90]
add esp, 0x20
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
cmp byte [ecx], 1
jne 0x53e972
push eax
call dword [eax + 0x24]
mov edx, dword [esi]
mov eax, dword [edx + 4]
push eax
call dword [eax + 0x30]
mov eax, dword [esi]
mov ebx, dword [esi + 0x1a8]
add esp, 8
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [edx + 4]
push eax
push 0xffffffffffffffff
push ecx
call dword [ecx + 0x14]
mov ecx, dword [esi]
add esp, 8
mov edx, dword [ecx + 8]
push eax
mov eax, dword [esi + 0x1a8]
push ebp
push edx
push eax
call dword [ebx + 0x2c]
add esp, 0x14
mov ebx, eax
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x20]
test ecx, ecx
jle 0x53e98f
mov ecx, dword [esp + 0x10]
push ecx
push 0x2f
push eax
call dword [eax + 0x78]
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov edx, eax
mov dword [edx], ebp
mov dword [edx + 4], edi
pop edi
pop esi
pop ebp
mov dword [edx + 8], ebx
pop ebx
add esp, 0x28
ret
mov byte [ecx + 0x18], 1
mov eax, dword [esp + 0x3c]
pop edi
mov ecx, eax
pop esi
mov dword [ecx], ebp
mov dword [ecx + 4], ebp
pop ebp
mov dword [ecx + 8], ebx
pop ebx
add esp, 0x28
ret