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

Disassembly:
sub esp, 0x4c
push ebx
push esi
mov esi, dword [esp + 0x58]
mov eax, dword [esi]
xor ebx, ebx
push edi
mov edi, dword [esi + 0xc]
cmp edi, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], edi
jne 0x57be14
call fcn.00545240
mov edi, eax
cmp edi, ebx
mov dword [esi + 0xc], eax
mov dword [esp + 0x28], edi
je 0x57be14
push 0x87
call fcn.0053f6c0
add esp, 4
cmp dword [esp + 0x78], ebx
push ebp
jge 0x57be64
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
mov eax, dword [esp + 0x70]
movzx ebp, byte [eax + 0x18]
jg 0x57be3b
call fcn.0053f5e0
test eax, eax
je 0x57be3b
mov esi, 1
jmp 0x57be60
mov edx, dword [edi + 0x14]
add dword [edi + 0xc], 1
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov byte [eax], 0x6f
mov byte [eax + 3], bl
mov dword [eax + 4], ebp
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [edi + 0x62], bl
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x14], ebx
mov dword [esp + 0x1c], ebx
jle 0x57c36c
mov esi, dword [esp + 0x18]
test esi, esi
je 0x57becd
cmp byte [esi + 0x1e], 0
je 0x57be8a
xor ebp, ebp
jmp 0x57bfbf
cmp byte [esi + 0xea], 0
je 0x57becd
cmp word [esi + 0xe8], 0x31
jb 0x57becd
mov ebp, dword [esi + 0xf4]
test ebp, ebp
je 0x57becd
mov ecx, dword [ebp]
add dword [esi + 0xec], 1
mov eax, dword [esi + 0xec]
cmp eax, dword [esi + 0xf0]
mov dword [esi + 0xf4], ecx
jle 0x57bf28
mov dword [esi + 0xf0], eax
jmp 0x57bf28
cmp dword [0x659270], 0
je 0x57bf09
mov eax, dword [0x65f020]
test eax, eax
je 0x57bee9
push eax
call dword [0x6592b8]
add esp, 4
lea ebx, [esp + 0x24]
mov eax, 0x31
call fcn.0053c460
mov eax, dword [0x65f020]
test eax, eax
je 0x57bf18
push eax
call dword [0x6592c0]
jmp 0x57bf15
push 0x31
call dword [0x659288]
mov dword [esp + 0x28], eax
add esp, 4
mov ebp, dword [esp + 0x24]
test ebp, ebp
jne 0x57bf30
test esi, esi
je 0x57bf28
mov byte [esi + 0x1e], 1
test ebp, ebp
je 0x57bfbf
push 0x31
push 0
push ebp
call fcn.005b4520
push 0
lea eax, [ebp + 0x30]
push 0
push eax
mov byte [ebp], 0x84
mov word [ebp + 0x1e], 0xffff
mov dword [ebp + 4], eax
call fcn.005b64d0
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x84]
add esp, 0x18
test eax, eax
mov byte [edx], 0
mov dword [ebp + 0x2c], 1
je 0x57bfb4
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
mov edx, dword [esp + 0x68]
cmp dword [edx + 4], eax
mov edi, dword [edx + 0xc]
lea ecx, [eax + eax*2]
lea ecx, [edi + ecx*8]
jne 0x57bf8e
or eax, 0xffffffff
mov edx, dword [esp + 0x78]
lea eax, [eax + edx + 1]
mov dword [ebp + 0x18], eax
mov dl, byte [ecx + 0x16]
mov eax, dword [esp + 0x60]
mov byte [ebp + 1], dl
push eax
mov eax, dword [ecx + 0x10]
call fcn.00564d80
add esp, 4
mov dword [ebp + 0x14], eax
jmp 0x57bfbf
mov ecx, dword [esp + 0x78]
mov dword [ebp + 0x18], ecx
mov byte [ebp + 1], 0x64
mov eax, dword [esp + 0x74]
test eax, eax
je 0x57bfd0
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + edx*4]
jmp 0x57bfd7
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx]
mov ecx, dword [edx + 0xc]
lea eax, [eax + eax*2]
mov ecx, dword [ecx + eax*8]
test ecx, ecx
mov dword [esp + 0x34], ecx
je 0x57c00c
cmp byte [ecx], 0
mov eax, ecx
je 0x57bffd
add eax, 1
cmp byte [eax], 0
jne 0x57bff5
sub eax, ecx
and eax, 0x3fffffff
mov ebx, eax
mov dword [esp + 0x14], eax
jmp 0x57c012
xor ebx, ebx
mov dword [esp + 0x14], ebx
test esi, esi
lea edi, [ebx + 0x31]
je 0x57c069
cmp byte [esi + 0x1e], 0
je 0x57c026
xor esi, esi
jmp 0x57c12e
cmp byte [esi + 0xea], 0
je 0x57c069
movzx edx, word [esi + 0xe8]
cmp edi, edx
jg 0x57c069
mov eax, dword [esi + 0xf4]
test eax, eax
je 0x57c069
mov ecx, dword [eax]
add dword [esi + 0xec], 1
mov dword [esi + 0xf4], ecx
mov ecx, dword [esi + 0xec]
cmp ecx, dword [esi + 0xf0]
jle 0x57c0c6
mov dword [esi + 0xf0], ecx
jmp 0x57c0c6
lea edx, [edi - 1]
cmp edx, 0x7ffffefe
ja 0x57c103
cmp dword [0x659270], 0
je 0x57c0f3
mov eax, dword [0x65f020]
test eax, eax
je 0x57c094
push eax
call dword [0x6592b8]
add esp, 4
lea ebx, [esp + 0x20]
mov eax, edi
call fcn.0053c460
mov eax, dword [0x65f020]
test eax, eax
je 0x57c0b2
push eax
call dword [0x6592c0]
add esp, 4
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x57c0c2
test esi, esi
je 0x57c0c2
mov byte [esi + 0x1e], 1
mov ebx, dword [esp + 0x14]
mov esi, eax
test esi, esi
je 0x57c12e
push edi
push 0
push esi
call fcn.005b4520
lea eax, [ebx + 1]
add esp, 0xc
test eax, eax
mov byte [esi], 0x1a
mov word [esi + 0x1e], 0xffff
jne 0x57c10b
or word [esi + 2], 0x400
mov dword [esi + 4], eax
jmp 0x57c127
push edi
call dword [0x659288]
add esp, 4
mov dword [esp + 0x20], eax
jmp 0x57c0b2
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x57c0ba
mov ecx, dword [esp + 0x34]
push ebx
lea eax, [esi + 0x30]
push ecx
push eax
mov dword [esi + 4], eax
call fcn.005b64d0
mov edx, dword [esi + 4]
add esp, 0xc
mov byte [ebx + edx], 0
mov dword [esi + 0x2c], 1
mov eax, dword [esp + 0x60]
mov edi, dword [eax]
test edi, edi
je 0x57c187
cmp byte [edi + 0x1e], 0
je 0x57c145
xor edi, edi
jmp 0x57c205
cmp byte [edi + 0xea], 0
je 0x57c187
cmp word [edi + 0xe8], 0x30
jb 0x57c187
mov eax, dword [edi + 0xf4]
test eax, eax
je 0x57c187
mov ecx, dword [eax]
add dword [edi + 0xec], 1
mov dword [edi + 0xf4], ecx
mov ecx, dword [edi + 0xec]
cmp ecx, dword [edi + 0xf0]
jle 0x57c1e2
mov dword [edi + 0xf0], ecx
jmp 0x57c1e2
cmp dword [0x659270], 0
je 0x57c1c3
mov eax, dword [0x65f020]
test eax, eax
je 0x57c1a3
push eax
call dword [0x6592b8]
add esp, 4
lea ebx, [esp + 0x28]
mov eax, 0x30
call fcn.0053c460
mov eax, dword [0x65f020]
test eax, eax
je 0x57c1d2
push eax
call dword [0x6592c0]
jmp 0x57c1cf
push 0x30
call dword [0x659288]
mov dword [esp + 0x2c], eax
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x57c1e2
test edi, edi
je 0x57c1e2
mov byte [edi + 0x1e], 1
mov edi, eax
test edi, edi
je 0x57c205
push 0x30
push 0
push edi
call fcn.005b4520
add esp, 0xc
mov byte [edi], 0x4c
mov word [edi + 0x1e], 0xffff
mov dword [edi + 0x2c], 1
test edi, edi
mov edx, dword [esp + 0x60]
mov ebx, dword [edx]
jne 0x57c225
push ebp
push ebx
call fcn.00540330
push esi
push ebx
call fcn.00540330
add esp, 0x10
jmp 0x57c2d7
test esi, esi
je 0x57c240
mov dword [edi + 0xc], esi
test word [esi + 2], 0x100
je 0x57c240
or word [edi + 2], 0x100
mov eax, dword [esi + 0x14]
mov dword [edi + 0x14], eax
test ebp, ebp
je 0x57c25c
mov eax, 0x100
mov dword [edi + 8], ebp
test word [ebp + 2], ax
je 0x57c25c
or word [edi + 2], ax
mov ecx, dword [ebp + 0x14]
mov dword [edi + 0x14], ecx
mov eax, dword [edi + 8]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x14], ebp
je 0x57c276
mov eax, dword [eax + 0x2c]
test eax, eax
jle 0x57c276
mov ebp, eax
mov dword [esp + 0x14], ebp
mov eax, dword [edi + 0xc]
test eax, eax
je 0x57c28a
mov eax, dword [eax + 0x2c]
cmp eax, ebp
jle 0x57c28a
mov ebp, eax
mov dword [esp + 0x14], ebp
test word [edi + 2], 0x800
mov ecx, dword [edi + 0x10]
je 0x57c2a4
lea eax, [esp + 0x14]
call fcn.005382b0
mov ebp, dword [esp + 0x14]
jmp 0x57c2d1
test ecx, ecx
je 0x57c2d1
xor esi, esi
cmp dword [ecx], esi
jle 0x57c2d1
xor edx, edx
mov eax, dword [ecx + 0xc]
mov eax, dword [edx + eax]
test eax, eax
je 0x57c2c7
mov eax, dword [eax + 0x2c]
cmp eax, ebp
jle 0x57c2c7
mov ebp, eax
mov dword [esp + 0x14], ebp
add esi, 1
add edx, 0x14
cmp esi, dword [ecx]
jl 0x57c2b0
add ebp, 1
mov dword [edi + 0x2c], ebp
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x57c2e5
mov dword [esp + 0x10], edi
jmp 0x57c354
test edi, edi
je 0x57c354
mov ebp, dword [esp + 0x18]
mov ecx, 0x30
mov esi, ebp
call fcn.0053c960
mov esi, eax
test esi, esi
je 0x57c3d1
push 0x30
push 0
push esi
call fcn.005b4520
mov eax, 0x100
add esp, 0xc
mov byte [esi], 0x45
mov word [esi + 0x1e], 0xffff
mov dword [esi + 0x2c], 1
mov dword [esi + 0xc], edi
test word [edi + 2], ax
je 0x57c338
or word [esi + 2], ax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x14], ecx
mov dword [esi + 8], ebx
test word [ebx + 2], ax
je 0x57c34b
or word [esi + 2], ax
mov edx, dword [ebx + 0x14]
mov dword [esi + 0x14], edx
call fcn.00538330
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
add eax, 1
cmp eax, dword [ecx + 0x14]
mov dword [esp + 0x1c], eax
jl 0x57be75
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x70]
cmp edx, dword [eax]
jne 0x57c4e5
cmp dword [esp + 0x7c], 0
jle 0x57c4e5
mov esi, dword [esp + 0x18]
mov ecx, 0x31
call fcn.0053c960
mov ebx, eax
test ebx, ebx
je 0x57c3e7
push 0x31
push 0
push ebx
call fcn.005b4520
push 0
lea eax, [ebx + 0x30]
push 0
or ebp, 0xffffffff
push eax
mov byte [ebx], 0x84
mov word [ebx + 0x1e], bp
mov dword [ebx + 4], eax
call fcn.005b64d0
mov ecx, dword [ebx + 4]
mov byte [ecx], 0
add esp, 0x18
mov dword [ebx + 0x2c], 1
jmp 0x57c3ea
push ebx
push ebp
call fcn.00540330
push edi
push ebp
call fcn.00540330
add esp, 0x10
jmp 0x57c350
or ebp, 0xffffffff
mov ecx, 0x31
call fcn.0053c960
mov edi, eax
test edi, edi
je 0x57c42b
push 0x31
push 0
push edi
call fcn.005b4520
push 0
lea eax, [edi + 0x30]
push 0
push eax
mov byte [edi], 0x98
mov word [edi + 0x1e], bp
mov dword [edi + 4], eax
call fcn.005b64d0
mov edx, dword [edi + 4]
mov byte [edx], 0
add esp, 0x18
mov dword [edi + 0x2c], 1
test ebx, ebx
je 0x57c44c
test edi, edi
je 0x57c44c
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x64]
mov dword [ebx + 0x18], eax
mov byte [ebx + 1], 0x64
mov edx, dword [ecx + 0x20]
mov dword [edi + 0x18], edx
mov word [edi + 0x1c], bp
mov ebp, dword [esp + 0x60]
mov esi, dword [ebp]
mov ecx, 0x30
call fcn.0053c960
mov esi, eax
test esi, esi
je 0x57c480
push 0x30
push 0
push esi
call fcn.005b4520
add esp, 0xc
mov byte [esi], 0x4b
mov word [esi + 0x1e], 0xffff
mov dword [esi + 0x2c], 1
test esi, esi
mov ebp, dword [ebp]
jne 0x57c49a
push ebx
push ebp
call fcn.00540330
push edi
push ebp
call fcn.00540330
add esp, 0x10
jmp 0x57c4d2
test edi, edi
mov eax, 0x100
je 0x57c4b6
mov dword [esi + 0xc], edi
test word [edi + 2], ax
je 0x57c4b6
or word [esi + 2], ax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x14], ecx
test ebx, ebx
je 0x57c4cd
mov dword [esi + 8], ebx
test word [ebx + 2], ax
je 0x57c4cd
or word [esi + 2], ax
mov edx, dword [ebx + 0x14]
mov dword [esi + 0x14], edx
call fcn.00538330
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov eax, esi
call fcn.00545bc0
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea esi, [esp + 0x38]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], edi
call fcn.00554790
mov eax, dword [esp + 0x10]
xor ebx, ebx
push ebx
push ebx
push eax
push ebp
push edi
call fcn.0057ac00
add esp, 0x14
cmp dword [esp + 0x7c], ebx
mov dword [esp + 0x60], eax
jle 0x57c561
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x18], bl
jne 0x57c561
mov eax, dword [edi + 0x1a8]
cmp eax, ebx
je 0x57c55a
mov edi, eax
mov byte [edi + 0x159], 1
mov edi, dword [esp + 0x2c]
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
mov edx, dword [esp + 0x70]
movzx ebp, byte [edx + 0x18]
jg 0x57c57e
call fcn.0053f5e0
test eax, eax
jne 0x57c5a7
mov ecx, dword [edi + 0x14]
add dword [edi + 0xc], 1
mov edx, dword [esp + 0x7c]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x6e
mov byte [eax + 3], bl
mov dword [eax + 4], ebp
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [edi + 0x62], bl
mov eax, dword [esp + 0x60]
cmp eax, ebx
pop ebp
je 0x57c5b9
push eax
call fcn.00542760
add esp, 4
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.00540330
mov eax, dword [esp + 0x34]
add esp, 8
cmp eax, ebx
je 0x57c5e4
mov ecx, dword [edi + 0xc]
cmp ecx, eax
jle 0x57c5e4
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x14]
mov dword [eax + edx*4 + 8], ecx
pop edi
pop esi
pop ebx
add esp, 0x4c
ret