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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x7c
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x68], eax
mov eax, dword [ecx]
mov dword [esp], edx
call dword [eax + 0x78]
movzx edi, word [ebx + 0x1a]
movsx esi, word [0x5b9030]
sub esp, 4
mov eax, edi
mov word [esp + 0x6e], si
sar ax, 5
movsx ebp, ax
mov word [esp + 0x62], ax
movzx eax, word [ebx + 0x1c]
mov edx, ebp
mov word [esp + 0x6c], ax
sar ax, 5
movsx ecx, ax
mov word [esp + 0x60], ax
movsx eax, word [esp + 0x90]
mov dword [esp + 0x54], ecx
sub edx, eax
mov eax, edx
neg eax
cmovs eax, edx
movsx edx, word [esp + 0x94]
sub ecx, edx
mov edx, ecx
neg edx
cmovs edx, ecx
cmp ax, dx
cmovl eax, edx
mov edx, 0x640
cwde
shl eax, 5
cmp eax, edx
cmovg eax, edx
cmp esi, eax
jl 0x52d530
movzx eax, word [esp + 0x90]
mov word [ebx + 0x52], ax
movzx eax, word [esp + 0x94]
mov word [ebx + 0x54], ax
cmp ebp, dword [esp + 0x90]
jne 0x52d310
mov ecx, dword [esp + 0x54]
cmp ecx, dword [esp + 0x94]
jne 0x52d310
mov eax, 3
cmp word [ebx + 0x12], di
je 0x52d720
cmp word [esp + 0x50], 4
mov byte [ebx + 9], al
jne 0x52d2ed
cmp word [esp + 0x58], 1
jg 0x52d5d0
cmp byte [0x5b3021], 0
jne 0x52d590
mov eax, 1
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret 0x20
movsx eax, byte [ebx + 0x25]
xor ecx, ecx
mov dword [ebx + 0x7b], 0
mov word [ebx + 0x7f], cx
mov ecx, 0x5b9000
mov dword [esp], eax
call fcn.004d53d0
lea ecx, [ebx + 0x81]
sub esp, 4
mov eax, dword [esp + 0x58]
movsx esi, word [esp + 0x5c]
mov dword [esp + 0x5c], ecx
lea ecx, [ebx + 0x7b]
cmp word [esp + 0x50], 4
mov dword [esp + 0x58], ecx
movsx edi, ax
jne 0x52d360
cmp ax, 1
jne 0x52d5f0
movsx ecx, word [esp + 0x50]
movsx eax, byte [ebx + 8]
mov dword [esp + 0x50], ecx
cmp al, 0x4c
je 0x52d758
mov ecx, dword [0x59ad2c]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x1c], esi
lea edx, [ecx - 1]
mov ecx, dword [0x59ad30]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x34], edx
lea edx, [ecx - 1]
mov dword [esp + 0x18], edi
mov ecx, 0x5b9000
mov dword [esp + 0x30], edx
mov edx, dword [0x5b3024]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x29]
mov dword [esp], ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.004d97b0
mov ecx, 0x5b9000
sub esp, 0x38
mov esi, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.004d7d00
mov ecx, 0x5b9000
sub esp, 8
mov dword [ebx + 0x77], eax
mov dword [esp], 0
call fcn.004d5410
mov eax, dword [ebx + 0x77]
sub esp, 4
cmp esi, 4
je 0x52d4b0
cmp byte [ebx + 0x26], 0
jne 0x52d6b0
test eax, eax
je 0x52d500
mov edx, dword [ebx + 0x7b]
test edx, edx
je 0x52d500
lea edx, [eax + edx*4 - 4]
cmp byte [ebx + 9], 3
movzx ecx, word [edx]
mov word [ebx + 0x52], cx
movzx edx, word [edx + 2]
mov word [ebx + 0x54], dx
mov edx, 1
mov word [ebx + 0x7f], dx
je 0x52d2fa
movsx edx, word [eax + 6]
mov ecx, ebx
mov dword [esp + 0xc], edx
movsx eax, word [eax + 4]
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.004de540
mov ecx, ebx
sub esp, 0x10
call fcn.0052d100
mov eax, 1
jmp 0x52d2ff
test eax, eax
je 0x52d4c3
mov dword [esp], eax
call fcn.00565f80
mov dword [ebx + 0x77], 0
cmp byte [ebx + 0x26], 0
mov dword [ebx + 0x7b], 0
mov dword [ebx + 0x7f], 0
je 0x52d500
movzx eax, byte [ebx + 0xa3]
cmp al, 0x63
jle 0x52d7a0
movzx eax, byte [ebx + 0xa4]
test al, al
je 0x52d7c0
cmp al, 1
je 0x52d7b0
lea esi, [esi]
movzx eax, word [esp + 0x62]
mov word [ebx + 0x52], ax
movzx eax, word [esp + 0x60]
mov word [ebx + 0x54], ax
movzx eax, word [ebx + 0x1a]
cmp word [ebx + 0x12], ax
je 0x52d6f8
mov byte [ebx + 9], 3
jmp 0x52d2fa
cmp esi, 0x18f
jg 0x52d578
cmp word [esp + 0x50], 4
jne 0x52d548
cmp word [esp + 0x58], 1
jg 0x52d5b0
xor eax, eax
cmp byte [0x5b3021], 0
je 0x52d2ff
mov dword [0x5b3024], 0
mov byte [0x5b3021], 0
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret 0x20
mov ebx, 0x18f
mov word [0x5b9030], bx
jmp 0x52d538
mov dword [0x5b3024], 0
mov eax, 1
mov byte [0x5b3021], 0
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret 0x20
mov ecx, 0x5b8fe0
call fcn.004dd050
xor eax, eax
cmp byte [0x5b3021], 0
je 0x52d2ff
jmp 0x52d557
mov ecx, 0x5b8fe0
call fcn.004dd050
cmp byte [0x5b3021], 0
jne 0x52d590
jmp 0x52d2fa
mov eax, dword [0x59ad2c]
mov dword [esp + 0x20], esi
mov ecx, 0x5b8fe0
mov dword [esp + 0x38], 0
sub eax, 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x40], eax
mov eax, dword [0x59ad30]
mov dword [esp + 0x30], 0
sub eax, 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x3c], eax
movsx eax, word [esp + 0x68]
mov dword [esp + 0x1c], 4
mov dword [esp + 0x2c], eax
movsx eax, word [esp + 0x64]
mov dword [esp + 0x28], eax
movsx eax, byte [ebx + 8]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x29]
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x94]
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.004dd5a0
mov ecx, 0x5b8fe0
sub esp, 0x44
mov esi, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.004dd940
mov dword [ebx + 0x77], eax
sub esp, 8
jmp 0x52d42a
cmp esi, 3
jne 0x52d748
cmp word [esp + 0x6e], 0x63f
jle 0x52d748
movzx edx, byte [ebx + 0xa3]
cmp dl, 0x63
jg 0x52d6db
add edx, 1
mov byte [ebx + 0xa3], dl
cmp byte [ebx + 0xa4], 1
jne 0x52d43d
mov byte [ebx + 0xa4], 0
jmp 0x52d43d
movzx eax, word [ebx + 0x1c]
cmp word [ebx + 0x14], ax
jne 0x52d520
movzx eax, byte [ebx + 0xa]
mov byte [ebx + 0xe], 0
mov byte [ebx + 9], 1
mov byte [ebx + 0xd], al
mov eax, 1
jmp 0x52d2ff
movzx edi, word [esp + 0x6c]
cmp word [ebx + 0x14], di
jne 0x52d2d6
movzx eax, byte [ebx + 0xa]
mov byte [ebx + 0xe], 0
mov byte [ebx + 0xd], al
mov eax, 1
jmp 0x52d2d6
mov byte [ebx + 0xa3], 0
jmp 0x52d6db
mov dword [esp + 0x14], ecx
movsx eax, byte [ebx + 0x25]
mov ecx, ebx
mov dword [esp], ebp
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.0052c570
movsx eax, byte [ebx + 8]
sub esp, 0x18
jmp 0x52d375
add eax, 1
mov byte [ebx + 0xa3], al
jmp 0x52d4e6
mov byte [ebx + 0xa4], 2
jmp 0x52d500
mov byte [ebx + 0xa4], 1
jmp 0x52d500