Function at 0x57cdf0
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 0x57ce34
call fcn.00546260
mov edi, eax
cmp edi, ebx
mov dword [esi + 0xc], eax
mov dword [esp + 0x28], edi
je 0x57ce34
push 0x87
call fcn.005406e0
add esp, 4
cmp dword [esp + 0x78], ebx
push ebp
jge 0x57ce84
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
mov eax, dword [esp + 0x70]
movzx ebp, byte [eax + 0x18]
jg 0x57ce5b
call fcn.00540600
test eax, eax
je 0x57ce5b
mov esi, 1
jmp 0x57ce80
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 0x57d38c
mov esi, dword [esp + 0x18]
test esi, esi
je 0x57ceed
cmp byte [esi + 0x1e], 0
je 0x57ceaa
xor ebp, ebp
jmp 0x57cfdf
cmp byte [esi + 0xea], 0
je 0x57ceed
cmp word [esi + 0xe8], 0x31
jb 0x57ceed
mov ebp, dword [esi + 0xf4]
test ebp, ebp
je 0x57ceed
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 0x57cf48
mov dword [esi + 0xf0], eax
jmp 0x57cf48
cmp dword [0x65b270], 0
je 0x57cf29
mov eax, dword [0x661020]
test eax, eax
je 0x57cf09
push eax
call dword [0x65b2b8]
add esp, 4
lea ebx, [esp + 0x24]
mov eax, 0x31
call fcn.0053d480
mov eax, dword [0x661020]
test eax, eax
je 0x57cf38
push eax
call dword [0x65b2c0]
jmp 0x57cf35
push 0x31
call dword [0x65b288]
mov dword [esp + 0x28], eax
add esp, 4
mov ebp, dword [esp + 0x24]
test ebp, ebp
jne 0x57cf50
test esi, esi
je 0x57cf48
mov byte [esi + 0x1e], 1
test ebp, ebp
je 0x57cfdf
push 0x31
push 0
push ebp
call fcn.005b5540
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.005b74f0
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 0x57cfd4
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 0x57cfae
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.00565da0
add esp, 4
mov dword [ebp + 0x14], eax
jmp 0x57cfdf
mov ecx, dword [esp + 0x78]
mov dword [ebp + 0x18], ecx
mov byte [ebp + 1], 0x64
mov eax, dword [esp + 0x74]
test eax, eax
je 0x57cff0
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + edx*4]
jmp 0x57cff7
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 0x57d02c
cmp byte [ecx], 0
mov eax, ecx
je 0x57d01d
add eax, 1
cmp byte [eax], 0
jne 0x57d015
sub eax, ecx
and eax, 0x3fffffff
mov ebx, eax
mov dword [esp + 0x14], eax
jmp 0x57d032
xor ebx, ebx
mov dword [esp + 0x14], ebx
test esi, esi
lea edi, [ebx + 0x31]
je 0x57d089
cmp byte [esi + 0x1e], 0
je 0x57d046
xor esi, esi
jmp 0x57d14e
cmp byte [esi + 0xea], 0
je 0x57d089
movzx edx, word [esi + 0xe8]
cmp edi, edx
jg 0x57d089
mov eax, dword [esi + 0xf4]
test eax, eax
je 0x57d089
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 0x57d0e6
mov dword [esi + 0xf0], ecx
jmp 0x57d0e6
lea edx, [edi - 1]
cmp edx, 0x7ffffefe
ja 0x57d123
cmp dword [0x65b270], 0
je 0x57d113
mov eax, dword [0x661020]
test eax, eax
je 0x57d0b4
push eax
call dword [0x65b2b8]
add esp, 4
lea ebx, [esp + 0x20]
mov eax, edi
call fcn.0053d480
mov eax, dword [0x661020]
test eax, eax
je 0x57d0d2
push eax
call dword [0x65b2c0]
add esp, 4
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x57d0e2
test esi, esi
je 0x57d0e2
mov byte [esi + 0x1e], 1
mov ebx, dword [esp + 0x14]
mov esi, eax
test esi, esi
je 0x57d14e
push edi
push 0
push esi
call fcn.005b5540
lea eax, [ebx + 1]
add esp, 0xc
test eax, eax
mov byte [esi], 0x1a
mov word [esi + 0x1e], 0xffff
jne 0x57d12b
or word [esi + 2], 0x400
mov dword [esi + 4], eax
jmp 0x57d147
push edi
call dword [0x65b288]
add esp, 4
mov dword [esp + 0x20], eax
jmp 0x57d0d2
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x57d0da
mov ecx, dword [esp + 0x34]
push ebx
lea eax, [esi + 0x30]
push ecx
push eax
mov dword [esi + 4], eax
call fcn.005b74f0
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 0x57d1a7
cmp byte [edi + 0x1e], 0
je 0x57d165
xor edi, edi
jmp 0x57d225
cmp byte [edi + 0xea], 0
je 0x57d1a7
cmp word [edi + 0xe8], 0x30
jb 0x57d1a7
mov eax, dword [edi + 0xf4]
test eax, eax
je 0x57d1a7
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 0x57d202
mov dword [edi + 0xf0], ecx
jmp 0x57d202
cmp dword [0x65b270], 0
je 0x57d1e3
mov eax, dword [0x661020]
test eax, eax
je 0x57d1c3
push eax
call dword [0x65b2b8]
add esp, 4
lea ebx, [esp + 0x28]
mov eax, 0x30
call fcn.0053d480
mov eax, dword [0x661020]
test eax, eax
je 0x57d1f2
push eax
call dword [0x65b2c0]
jmp 0x57d1ef
push 0x30
call dword [0x65b288]
mov dword [esp + 0x2c], eax
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x57d202
test edi, edi
je 0x57d202
mov byte [edi + 0x1e], 1
mov edi, eax
test edi, edi
je 0x57d225
push 0x30
push 0
push edi
call fcn.005b5540
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 0x57d245
push ebp
push ebx
call fcn.00541350
push esi
push ebx
call fcn.00541350
add esp, 0x10
jmp 0x57d2f7
test esi, esi
je 0x57d260
mov dword [edi + 0xc], esi
test word [esi + 2], 0x100
je 0x57d260
or word [edi + 2], 0x100
mov eax, dword [esi + 0x14]
mov dword [edi + 0x14], eax
test ebp, ebp
je 0x57d27c
mov eax, 0x100
mov dword [edi + 8], ebp
test word [ebp + 2], ax
je 0x57d27c
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 0x57d296
mov eax, dword [eax + 0x2c]
test eax, eax
jle 0x57d296
mov ebp, eax
mov dword [esp + 0x14], ebp
mov eax, dword [edi + 0xc]
test eax, eax
je 0x57d2aa
mov eax, dword [eax + 0x2c]
cmp eax, ebp
jle 0x57d2aa
mov ebp, eax
mov dword [esp + 0x14], ebp
test word [edi + 2], 0x800
mov ecx, dword [edi + 0x10]
je 0x57d2c4
lea eax, [esp + 0x14]
call fcn.005392d0
mov ebp, dword [esp + 0x14]
jmp 0x57d2f1
test ecx, ecx
je 0x57d2f1
xor esi, esi
cmp dword [ecx], esi
jle 0x57d2f1
xor edx, edx
mov eax, dword [ecx + 0xc]
mov eax, dword [edx + eax]
test eax, eax
je 0x57d2e7
mov eax, dword [eax + 0x2c]
cmp eax, ebp
jle 0x57d2e7
mov ebp, eax
mov dword [esp + 0x14], ebp
add esi, 1
add edx, 0x14
cmp esi, dword [ecx]
jl 0x57d2d0
add ebp, 1
mov dword [edi + 0x2c], ebp
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x57d305
mov dword [esp + 0x10], edi
jmp 0x57d374
test edi, edi
je 0x57d374
mov ebp, dword [esp + 0x18]
mov ecx, 0x30
mov esi, ebp
call fcn.0053d980
mov esi, eax
test esi, esi
je 0x57d3f1
push 0x30
push 0
push esi
call fcn.005b5540
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 0x57d358
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 0x57d36b
or word [esi + 2], ax
mov edx, dword [ebx + 0x14]
mov dword [esi + 0x14], edx
call fcn.00539350
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 0x57ce95
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x70]
cmp edx, dword [eax]
jne 0x57d505
cmp dword [esp + 0x7c], 0
jle 0x57d505
mov esi, dword [esp + 0x18]
mov ecx, 0x31
call fcn.0053d980
mov ebx, eax
test ebx, ebx
je 0x57d407
push 0x31
push 0
push ebx
call fcn.005b5540
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.005b74f0
mov ecx, dword [ebx + 4]
mov byte [ecx], 0
add esp, 0x18
mov dword [ebx + 0x2c], 1
jmp 0x57d40a
push ebx
push ebp
call fcn.00541350
push edi
push ebp
call fcn.00541350
add esp, 0x10
jmp 0x57d370
or ebp, 0xffffffff
mov ecx, 0x31
call fcn.0053d980
mov edi, eax
test edi, edi
je 0x57d44b
push 0x31
push 0
push edi
call fcn.005b5540
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.005b74f0
mov edx, dword [edi + 4]
mov byte [edx], 0
add esp, 0x18
mov dword [edi + 0x2c], 1
test ebx, ebx
je 0x57d46c
test edi, edi
je 0x57d46c
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.0053d980
mov esi, eax
test esi, esi
je 0x57d4a0
push 0x30
push 0
push esi
call fcn.005b5540
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 0x57d4ba
push ebx
push ebp
call fcn.00541350
push edi
push ebp
call fcn.00541350
add esp, 0x10
jmp 0x57d4f2
test edi, edi
mov eax, 0x100
je 0x57d4d6
mov dword [esi + 0xc], edi
test word [edi + 2], ax
je 0x57d4d6
or word [esi + 2], ax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x14], ecx
test ebx, ebx
je 0x57d4ed
mov dword [esi + 8], ebx
test word [ebx + 2], ax
je 0x57d4ed
or word [esi + 2], ax
mov edx, dword [ebx + 0x14]
mov dword [esi + 0x14], edx
call fcn.00539350
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov eax, esi
call fcn.00546be0
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.005557b0
mov eax, dword [esp + 0x10]
xor ebx, ebx
push ebx
push ebx
push eax
push ebp
push edi
call fcn.0057bc20
add esp, 0x14
cmp dword [esp + 0x7c], ebx
mov dword [esp + 0x60], eax
jle 0x57d581
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x18], bl
jne 0x57d581
mov eax, dword [edi + 0x1a8]
cmp eax, ebx
je 0x57d57a
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 0x57d59e
call fcn.00540600
test eax, eax
jne 0x57d5c7
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 0x57d5d9
push eax
call fcn.00543780
add esp, 4
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.00541350
mov eax, dword [esp + 0x34]
add esp, 8
cmp eax, ebx
je 0x57d604
mov ecx, dword [edi + 0xc]
cmp ecx, eax
jle 0x57d604
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