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

Disassembly:
sub esp, 0x414
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x410], eax
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x428]
lea eax, [esp + 0x20]
push 0x400
push eax
push dword [edi + 0x70]
push dword [edi + 0x7c]
call fcn.00511050
movzx eax, word [esp + 0x22e]
add esp, 0x10
cmp dword [edi + 0x70], 0
movzx ebp, word [esp + 0x21a]
movzx ebx, word [esp + 0x218]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], ebp
movzx ebp, word [esp + 0x21c]
mov dword [edi + 0x74], eax
jne 0x517b27
mov ecx, dword [esp + 0x34]
xor eax, eax
bswap ecx
mov edx, 0x200
mov esi, 0x400
cmp ecx, 0x52434842
je 0x517afe
cmp ecx, 0x42484352
jne 0x517b12
movzx esi, word [esp + 0x30]
xor eax, eax
cmp byte [esp + 0x2f], 0x21
movzx edx, word [esp + 0x32]
sete al
push esi
push edx
push eax
push dword [edi + 0x7c]
call fcn.005156d0
add esp, 0x10
test eax, eax
jne 0x517b27
mov dword [edi + 0x74], eax
mov eax, dword [edi + 0x74]
test eax, eax
je 0x517f75
mov esi, dword [edi + 0x7c]
xor edx, edx
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x517b46
cmp eax, 0xffffffff
setne dl
jmp 0x517b54
movzx ecx, word [esi + 0x2e]
div ecx
mov ecx, dword [esi + 0x28]
neg edx
sbb edx, edx
inc edx
test edx, edx
je 0x517f75
test ecx, ecx
je 0x517b6a
movzx eax, word [esi + 0x30]
mov dword [esp + 0x14], eax
jmp 0x517b72
mov dword [esp + 0x14], 0
push dword [esi + 8]
call fcn.004469e0
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x10], eax
mov esi, edx
mov eax, dword [edi + 0x74]
xor edx, edx
call fcn.004db060
cmp edx, esi
jg 0x517f75
jl 0x517ba5
cmp eax, dword [esp + 0x10]
jae 0x517f75
mov ecx, dword [edi + 0x7c]
mov ax, word [esp + 0x2c]
cmp ax, word [ecx + 0x32]
ja 0x517f75
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx eax, cx
movzx esi, dx
mov dword [esp + 0x10], eax
add eax, esi
cmp eax, 0x200
ja 0x517f75
mov eax, ebx
add esi, eax
mov dword [esp + 0x14], esi
cmp esi, 0x200
ja 0x517f75
mov ecx, dword [esp + 0x10]
mov esi, ebp
add ecx, esi
mov dword [esp + 0x10], ecx
cmp ecx, 0x200
mov ecx, dword [esp + 0x18]
ja 0x517f75
cmp bp, bx
jae 0x517c20
cmp dword [esp + 0x10], eax
jbe 0x517c34
cmp byte [esp + eax + 0x220], 0
je 0x517c34
jmp 0x517f75
cmp dword [esp + 0x14], esi
jbe 0x517c34
cmp byte [esp + eax + 0x220], 0
jne 0x517f75
test bp, bp
jne 0x517c4b
test cx, cx
je 0x517c55
test bx, bx
jne 0x517c4b
test dx, dx
je 0x517c4b
movzx ebx, cx
test cx, cx
jne 0x517c64
cmp bx, bp
jb 0x517c5a
movzx eax, bx
jmp 0x517c5f
mov eax, 0x200
sub eax, ebp
movzx ecx, ax
test dx, dx
jne 0x517c7b
cmp bx, bp
mov eax, 0x200
cmovbe eax, esi
sub eax, ebx
movzx ebp, ax
jmp 0x517c7f
mov ebp, dword [esp + 0x1c]
movzx esi, cx
lea eax, [esi + 1]
push eax
call fcn.00470460
push esi
lea ecx, [esp + 0x228]
mov dword [edi + 4], eax
push ecx
push eax
call fcn.004c9000
mov eax, dword [edi + 0x7c]
add esp, 0x10
mov cx, word [esp + 0x2c]
mov word [edi + 0x16], cx
movzx ecx, cx
movzx eax, word [eax + 0x2e]
add ecx, 8
sub eax, 0xc
mov dword [edi + 0x34], 0
cdq
idiv ecx
mov dword [edi + 0x3c], 0
mov word [edi + 0x78], ax
mov al, byte [esp + 0x2e]
movzx ecx, al
mov byte [edi + 0x1b], al
mov eax, ecx
and eax, 1
mov dword [edi + 0x20], eax
mov eax, ecx
shr eax, 1
and eax, 1
shr ecx, 2
mov dword [edi + 0x30], eax
and ecx, 1
xor eax, eax
mov dword [edi + 0x24], ecx
cmp word [esp + 0x216], ax
mov dword [edi + 0x2c], ecx
sete al
mov dword [edi + 0x28], ecx
mov dword [edi + 0x38], eax
mov dword [edi + 0x1c], eax
mov al, byte [esp + 0x2f]
cmp al, 1
je 0x517d1c
cmp al, 0x21
je 0x517d1c
xor eax, eax
jmp 0x517d29
xor eax, eax
cmp byte [esp + 0x213], 1
sete al
mov dword [edi + 0x40], eax
cmp byte [edi + 0x1b], 0
jl 0x517f7c
mov edx, dword [edi + 4]
cmp byte [edx], 0
je 0x517f75
mov eax, dword [edi + 0x7c]
push edx
mov eax, dword [eax + 0xc]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x140]
call eax
add esp, 8
cmp eax, 1
je 0x517f75
mov ecx, dword [edi + 0x7c]
push 0
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x18]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0xc]
mov dword [eax + 0x18], 0
mov eax, dword [edi + 0x7c]
mov ecx, dword [eax + 0xc]
push ecx
mov eax, dword [ecx + 0xec]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
push dword [edi + 0xc]
call fcn.00468140
push eax
call fcn.004b1c20
movzx ecx, al
add esp, 0x10
cmp ecx, 0x43
mov word [edi + 0x14], cx
setne al
dec al
and al, 0x20
mov byte [edi + 0x1a], al
cmp ecx, 0x43
jne 0x517dca
mov eax, dword [edi + 0x7c]
push dword [eax + 0xc]
call fcn.00511f40
add esp, 4
jmp 0x517dd1
mov dword [edi + 0x40], 0
mov eax, dword [edi + 0x7c]
push dword [edi + 4]
push dword [eax + 0xc]
call fcn.0049e0a0
mov word [edi + 0x18], ax
add esp, 8
movzx eax, bx
lea ebx, [esp + 0x220]
add ebx, eax
cmp byte [ebx], 0
je 0x517eb9
movzx esi, bp
lea eax, [esi + 1]
push eax
call fcn.00470460
push esi
push ebx
push eax
mov dword [edi + 8], eax
call fcn.004c9000
mov eax, dword [edi + 0x7c]
push dword [edi + 8]
mov eax, dword [eax + 0xc]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x140]
call eax
add esp, 0x18
cmp eax, 1
je 0x517eb2
mov ecx, dword [edi + 0x7c]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x18]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [eax + 0x18], 0
push dword [edi + 0x10]
call fcn.00468140
push eax
call fcn.004b1c20
add esp, 8
cmp al, 0x4c
je 0x517eb9
mov eax, dword [edi + 0x7c]
mov ebx, dword [eax + 0xc]
call fcn.0046f9b0
test ax, ax
jne 0x517eb2
call fcn.004383e0
mov esi, eax
push 0x21
push esi
call fcn.00438500
push 0x41d
push esi
call fcn.004385a0
push 0
push esi
call fcn.00438560
push 0x21
call fcn.0043fc80
push eax
push esi
call fcn.004384a0
mov eax, dword [ebx]
push esi
push ebx
mov eax, dword [eax + 0x144]
call eax
push esi
call fcn.00438c30
add esp, 0x30
mov dword [edi + 0x74], 0
mov eax, dword [edi + 0x7c]
push dword [esp + 0x10]
mov eax, dword [eax + 0xc]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
call eax
mov ebp, dword [edi + 0x7c]
add esp, 8
movzx eax, word [edi + 0x16]
cmp ax, word [ebp + 0x32]
ja 0x517f17
movzx ecx, word [edi + 0x14]
cmp ecx, 0x55
je 0x517f17
cmp ecx, 0x4e
jne 0x517efc
cmp eax, 8
je 0x517f7c
cmp eax, 4
jne 0x517f17
jmp 0x517f7c
cmp ecx, 0x44
jne 0x517f08
cmp eax, 8
jne 0x517f17
jmp 0x517f7c
cmp ecx, 0x54
je 0x517f01
cmp ecx, 0x4c
jne 0x517f7c
cmp eax, 1
je 0x517f7c
mov ebp, dword [ebp + 0xc]
xor ebx, ebx
cmp word [edi + 0x14], 0x55
setne bl
add ebx, 0x21
call fcn.0046f9b0
test ax, ax
jne 0x517f75
call fcn.004383e0
mov esi, eax
push ebx
push esi
call fcn.00438500
push 0x402
push esi
call fcn.004385a0
push 0
push esi
call fcn.00438560
push ebx
call fcn.0043fc80
push eax
push esi
call fcn.004384a0
mov eax, dword [ebp]
push esi
push ebp
mov eax, dword [eax + 0x144]
call eax
push esi
call fcn.00438c30
add esp, 0x30
mov dword [edi + 0x74], 0
mov ecx, dword [esp + 0x420]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004daa4c
add esp, 0x414
ret