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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x208
call fcn.00525900
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x1f8], edx
mov dword [esp + 0x1f4], esi
mov dword [esp + 0x1f0], ecx
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x200], eax
mov ecx, eax
mov dword [esp + 0x90], eax
call fcn.0051fbf0
mov ecx, dword [esp + 0x90]
add ecx, 0x10
mov dword [esp + 0x8c], eax
call fcn.004d2100
mov dword [esp + 0x88], eax
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x524e51
jmp 0x525857
mov eax, 0xffffffff
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov byte [ecx + 0x30], 0
mov byte [ecx + 0x31], 0
mov dword [ecx + 0x34], eax
mov dword [ecx + 0x38], eax
cmp dword [esp + 0x1f4], 0
setne dl
call fcn.00525910
call fcn.00525920
mov edi, eax
sub edi, 1
imul eax, edi
and eax, 1
cmp eax, 0
sete dh
cmp esi, 0xa
setl bl
or dh, bl
test dh, 1
mov byte [esp + 0x87], dl
jne 0x524ec9
jmp 0x525857
mov al, byte [esp + 0x87]
test al, 1
jne 0x524edd
jmp 0x524f9f
mov eax, dword [esp + 0x1f4]
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 4], 0x7f988c
call fcn.004487e0
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x80]
push ebx
mov ebx, 0x3448b576
xor ebx, 0x3448b576
cmp eax, ebx
pop ebx
jne 0x524f9f
call fcn.00525930
mov ecx, dword [0x80a090]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x524f53
jmp 0x525884
mov dword [esp + 0x1f4], 0
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
add edx, 0xffffffff
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x524f9a
jmp 0x525884
jmp 0x524f9f
cmp dword [esp + 0x1f4], 0
jne 0x52513e
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
add edx, 0xffffffff
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x524fec
jmp 0x525894
cmp dword [esp + 0x1f8], 0
setne al
mov ecx, dword [0x80a094]
mov edx, dword [0x80a090]
mov esi, ecx
sub esi, 1
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
or ah, bl
test ah, 1
mov byte [esp + 0x7f], al
jne 0x52503d
jmp 0x525894
mov al, byte [esp + 0x7f]
test al, 1
jne 0x52504e
jmp 0x52513e
cmp dword [esp + 0x1fc], 0
je 0x52513e
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x1f8]
mov ecx, dword [esp + 0x1e4]
add eax, dword [ecx + 0x3c]
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x1fc]
mov ecx, dword [esp + 0x1f8]
mov edx, esp
call fcn.00525940
mov dword [edx], ecx
mov ecx, dword [esp + 0x90]
call fcn.00458600
sub esp, 8
mov byte [esp + 0x7e], al
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
add edx, 0xffffffff
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x5250eb
jmp 0x525899
mov al, byte [esp + 0x7e]
and al, 1
mov ecx, dword [esp + 0x90]
mov byte [ecx + 0x30], al
mov edx, dword [0x80a094]
mov esi, dword [0x80a090]
mov edi, edx
sub edi, 1
imul edx, edi
and edx, 1
cmp edx, 0
sete al
cmp esi, 0xa
setl ah
or al, ah
test al, 1
jne 0x525139
jmp 0x525899
jmp 0x52513e
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x52517a
jmp 0x5258ae
mov byte [esp + 0xda], 0
cmp dword [esp + 0x1f4], 0
setne al
mov ecx, dword [0x80a094]
mov edx, dword [0x80a090]
mov esi, ecx
sub esi, 1
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
or ah, bl
test ah, 1
mov byte [esp + 0x7d], al
jne 0x5251d3
jmp 0x5258ae
mov al, byte [esp + 0x7d]
test al, 1
jne 0x52538f
jmp 0x5251e4
cmp dword [0x7fed70], 0
je 0x525217
mov eax, dword [0x800184]
mov ecx, esp
mov dword [ecx], 0
call eax
sub esp, 4
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x74], eax
jmp 0x525225
mov eax, 0
mov dword [esp + 0x74], eax
jmp 0x525225
mov eax, dword [esp + 0x74]
mov dword [esp + 0xd4], eax
cmp dword [0x7ffbb0], 0
je 0x525275
lea eax, [esp + 0xda]
call fcn.00525950
mov edx, dword [esp + 0xd4]
mov esi, esp
mov dword [esi + 4], eax
mov dword [esi], edx
call fcn.00525960
call ecx
sub esp, 0xc
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x6c], eax
jmp 0x525283
mov eax, 0
mov dword [esp + 0x6c], eax
jmp 0x525283
mov eax, dword [esp + 0x6c]
mov ecx, dword [0x80a094]
mov edx, dword [0x80a090]
mov esi, ecx
sub esi, 1
imul ecx, esi
and ecx, 1
push edx
mov edx, 0xc4d8748b
xor edx, 0xc4d8748b
cmp ecx, edx
pop edx
sete bl
cmp edx, 0xa
setl bh
or bl, bh
test bl, 1
mov dword [esp + 0x68], eax
jne 0x5252d3
jmp 0x5258bb
mov eax, dword [esp + 0x68]
cmp eax, 0
setne cl
mov edx, dword [0x80a094]
mov esi, dword [0x80a090]
mov edi, edx
sub edi, 1
imul edx, edi
and edx, 1
cmp edx, 0
sete ch
cmp esi, 0xa
setl bl
or ch, bl
test ch, 1
mov byte [esp + 0x67], cl
jne 0x525322
jmp 0x5258bb
mov al, byte [esp + 0x67]
test al, 1
jne 0x525338
jmp 0x525333
jmp 0x525846
lea eax, [esp + 0xb8]
lea ecx, [esp + 0xda]
mov edx, dword [esp + 0x90]
add edx, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 0x60], edx
call fcn.0040d4e0
mov eax, esp
lea ecx, [esp + 0xb8]
mov dword [eax], ecx
mov ecx, dword [esp + 0x60]
call fcn.004ff990
sub esp, 4
lea ecx, [esp + 0xb8]
mov dword [esp + 0x5c], eax
call fcn.00506f10
jmp 0x52545e
lea eax, [esp + 0xa0]
mov ecx, dword [esp + 0x90]
add ecx, 0x10
mov edx, dword [esp + 0x1f4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 0x58], ecx
call fcn.0040d4e0
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x5253f6
jmp 0x5258c0
mov eax, esp
lea ecx, [esp + 0xa0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x58]
call fcn.004ff990
sub esp, 4
lea ecx, [esp + 0xa0]
mov dword [esp + 0x54], eax
call fcn.00506f10
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x525459
jmp 0x5258c0
jmp 0x52545e
cmp dword [0x7ff710], 0
je 0x5254d1
mov eax, dword [0x7fff58]
mov ecx, dword [esp + 0x90]
add ecx, 0x10
mov dword [esp + 0x50], eax
call fcn.0052df00
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x14], 0x80
mov dword [ecx + 0x10], 3
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 1
mov dword [ecx + 4], 0x80000000
mov eax, dword [esp + 0x50]
call eax
sub esp, 0x1c
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
jmp 0x5254df
mov eax, 0xffffffff
mov dword [esp + 0x48], eax
jmp 0x5254df
mov eax, dword [esp + 0x48]
mov ecx, 0xffffffff
mov edx, dword [esp + 0x90]
mov dword [edx + 0x34], eax
cmp dword [edx + 0x34], ecx
je 0x525764
cmp dword [0x8000d0], 0
je 0x525554
mov eax, dword [0x8005a4]
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx + 0x34]
mov esi, esp
call fcn.00525970
mov dword [esi + 0x14], 0
call fcn.00525980
call fcn.00525990
mov dword [esi + 8], 2
call fcn.005259a0
call eax
sub esp, 0x18
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x40], eax
jmp 0x525562
mov eax, 0
mov dword [esp + 0x40], eax
jmp 0x525562
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x38], eax
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x9c], eax
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], 0
cmp dword [0x7fec68], 0
je 0x5255d4
mov eax, dword [0x7fec68]
mov ecx, dword [esp + 0x9c]
mov edx, 0x447c30
mov edx, esp
lea esi, [esp + 0x94]
mov dword [edx + 4], esi
mov dword [edx], ecx
call eax
sub esp, 8
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
jmp 0x525663
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x525610
jmp 0x5258ec
mov eax, dword [0x80a094]
call fcn.005259b0
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
push edx
mov edx, 0x335e1e8e
xor edx, 0x335e1e8e
cmp eax, edx
pop edx
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x525655
jmp 0x5258ec
mov eax, 0
mov dword [esp + 0x38], eax
jmp 0x525663
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x28], eax
cmp dword [ecx + 0x38], 0
je 0x52575f
cmp dword [0x800078], 0
je 0x525743
mov eax, dword [0x7ffb34]
mov ecx, dword [esp + 0x98]
mov edx, esp
mov dword [edx], ecx
call fcn.005259c0
mov dword [edx + 0xc], 0
mov dword [edx + 8], 0
call fcn.005259d0
call eax
sub esp, 0x14
mov dword [esp + 0x34], eax
call fcn.005259e0
mov ecx, dword [0x80a090]
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x5256fb
jmp 0x5258f1
call fcn.005259f0
call fcn.00525a00
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x525736
jmp 0x5258f1
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], eax
jmp 0x525751
mov eax, 0
mov dword [esp + 0x30], eax
jmp 0x525751
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x2c], eax
jmp 0x525764
mov eax, dword [esp + 0x90]
cmp dword [eax + 0x2c], 0
je 0x525846
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x5257b6
jmp 0x5258f6
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov esi, dword [0x80a094]
mov edi, dword [0x80a090]
mov ebx, esi
sub ebx, 1
imul esi, ebx
and esi, 1
cmp esi, 0
sete al
push ebx
mov ebx, 0xc6bc5425
xor ebx, 0xc6bc542f
cmp edi, ebx
pop ebx
setl ah
or al, ah
test al, 1
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
jne 0x525812
jmp 0x5258f6
mov eax, esp
mov ecx, dword [esp + 0x28]
call fcn.00525a10
mov edx, dword [esp + 0x2c]
mov dword [eax], edx
mov ecx, dword [esp + 0x90]
call fcn.00458600
sub esp, 8
mov byte [esp + 0x27], al
mov al, byte [esp + 0x27]
and al, 1
mov ecx, dword [esp + 0x90]
mov byte [ecx + 0x30], al
mov eax, dword [esp + 0x200]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov eax, 0xffffffff
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov byte [ecx + 0x30], 0
mov byte [ecx + 0x31], 0
mov dword [ecx + 0x34], eax
mov dword [ecx + 0x38], eax
jmp 0x524e51
mov dword [esp + 0x1f4], 0
jmp 0x524f53
jmp 0x524fec
mov al, byte [esp + 0x7e]
and al, 1
mov ecx, dword [esp + 0x90]
mov byte [ecx + 0x30], al
jmp 0x5250eb
mov byte [esp + 0xda], 0
jmp 0x52517a
jmp 0x5252d3
mov eax, esp
lea ecx, [esp + 0xa0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x58]
call fcn.004ff990
sub esp, 4
lea ecx, [esp + 0xa0]
mov dword [esp + 0x20], eax
call fcn.00506f10
jmp 0x5253f6
jmp 0x525610
jmp 0x5256fb
jmp 0x5257b6