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

Disassembly:
sub esp, 0xc4
mov eax, dword [esp + 0xc8]
push ebx
push ebp
push esi
mov ecx, dword [eax]
xor ebx, ebx
push edi
push ebx
lea edx, [esp + 0x24]
push 9
push edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], ebx
xor ebp, ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x3c], ecx
call fcn.005471fe
add esp, 0xc
mov dword [esp + 0x2c], 1
call fcn.00458de0
test eax, eax
jne 0x4ad6ae
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x1c]
push eax
push ecx
call fcn.004adc60
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x4ad6bd
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], ebx
cmp eax, 0x3d
jne 0x4ad41e
push 8
lea edx, [esp + 0x24]
push edi
push edx
call dword [0x550c78]
add esp, 0xc
cmp esi, 0x3d
jne 0x4ad3d3
cmp dword [esp + 0x1c], 0x2f
jne 0x4ad3d3
mov esi, str.PSET
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4ad455
cmp cl, bl
je 0x4ad451
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4ad455
add eax, 2
add esi, 2
cmp cl, bl
jne 0x4ad431
xor eax, eax
jmp 0x4ad45a
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4ad495
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xe0]
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0xe0]
push ecx
push edx
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.004ad830
add esp, 0x14
test eax, eax
jne 0x4ad787
jmp 0x4ad3d3
mov esi, str.CIRCLE
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4ad4c0
cmp cl, bl
je 0x4ad4bc
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4ad4c0
add eax, 2
add esi, 2
cmp cl, bl
jne 0x4ad49c
xor eax, eax
jmp 0x4ad4c5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4ad4fb
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xe0]
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0xe0]
push ecx
push edx
push eax
call fcn.004ad980
add esp, 0x10
test eax, eax
jne 0x4ad787
jmp 0x4ad3d3
mov esi, str.CURVE
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4ad526
cmp cl, bl
je 0x4ad522
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4ad526
add eax, 2
add esi, 2
cmp cl, bl
jne 0x4ad502
xor eax, eax
jmp 0x4ad52b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4ad556
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push str.CURVE:__s
push ecx
call dword [0x550c38]
lea edx, [esp + 0x40]
push edx
call fcn.00547162
lea eax, [esp + 0x30]
push eax
push ebx
jmp 0x4ad5b0
mov esi, str.CONS
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4ad581
cmp cl, bl
je 0x4ad57d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4ad581
add eax, 2
add esi, 2
cmp cl, bl
jne 0x4ad55d
xor eax, eax
jmp 0x4ad586
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4ad5cf
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push str.CONS:__s
push ecx
call dword [0x550c38]
lea edx, [esp + 0x40]
push edx
call fcn.00547162
lea eax, [esp + 0x30]
push eax
push 1
lea ecx, [esp + 0x30]
push ecx
call fcn.004add70
add esp, 0x1c
test eax, eax
jne 0x4ad787
call fcn.00457fa0
jmp 0x4ad3d3
mov esi, str.SURF
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4ad5fa
cmp cl, bl
je 0x4ad5f6
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4ad5fa
add eax, 2
add esi, 2
cmp cl, bl
jne 0x4ad5d6
xor eax, eax
jmp 0x4ad5ff
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4ad646
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push str.SURF:__s
push ecx
call dword [0x550c38]
lea edx, [esp + 0x40]
push edx
call fcn.00547162
lea eax, [esp + 0x30]
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.0050a5e0
add esp, 0x18
test eax, eax
jne 0x4ad787
call fcn.00457fa0
jmp 0x4ad3d3
mov esi, str.FACE
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4ad671
cmp cl, bl
je 0x4ad66d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4ad671
add eax, 2
add esi, 2
cmp cl, bl
jne 0x4ad64d
xor eax, eax
jmp 0x4ad676
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4ad3d3
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push str.FACE:__s
push ecx
call dword [0x550c38]
lea edx, [esp + 0x40]
push edx
call fcn.00547162
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.0050aa90
jmp 0x4ad631
mov edx, dword [0x5832c8]
push edx
call fcn.0054715c
add esp, 4
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0x10]
push eax
push ecx
push edx
call fcn.00410e30
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, ebx
mov dword [0x584b84], ebx
mov edi, eax
je 0x4ad7aa
mov esi, dword [esp + 0xe4]
cmp dword [0x584b84], ebx
jne 0x4ad7aa
cmp dword [eax + 0xc], ebx
je 0x4ad79b
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
push esi
push ecx
push edx
push eax
call fcn.00410340
mov ecx, dword [0x584b84]
add esp, 0x10
cmp ecx, ebx
jne 0x4ad797
cmp eax, ebx
je 0x4ad77c
mov ecx, dword [eax]
mov edx, dword [esp + 0xd8]
and ecx, 0xfffffffe
push eax
or ecx, 2
push edx
mov dword [eax + 0x38], 1
mov dword [eax], ecx
call fcn.004894b0
mov eax, dword [0x583160]
inc ebp
push ebp
push eax
lea ecx, [esp + 0x94]
push str._s__d
push ecx
call dword [0x550c38]
lea edx, [esp + 0x9c]
push edx
call fcn.00547162
add esp, 0x1c
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], ebx
jne 0x4ad70a
jmp 0x4ad79b
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc4
ret
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x34]
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x4ad6f5
push edi
call fcn.004888e0
mov eax, dword [esp + 0x34]
add esp, 4
cmp eax, ebx
je 0x4ad7c0
mov eax, dword [eax + 0x34]
jmp 0x4ad7c9
mov eax, dword [esp + 0xd8]
mov eax, dword [eax]
push eax
call fcn.004607c0
lea ecx, [esp + 0x1c]
push ecx
call fcn.004ea1f0
mov edx, dword [esp + 0x20]
push edx
push 0x583524
call fcn.004bb850
mov eax, dword [esp + 0x24]
push eax
push 0x580070
call fcn.005024e0
mov eax, dword [esp + 0x2c]
add esp, 0x18
cmp eax, ebx
je 0x4ad81a
push eax
call fcn.00503120
mov ecx, dword [esp + 0x18]
add esp, 4
mov eax, dword [ecx + 0x78]
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x4ad802
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc4
ret