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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfc
push ebx
mov dword [esp + 0x80], ecx
xor ecx, ecx
push esi
mov esi, edx
inc ecx
xor edx, edx
mov dword [esp + 0x18], ecx
push edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x14], edx
jmp 0x40542a
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xf0], 0xd7f825e7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x405417
mov edi, dword [0xad4304]
mov ebx, dword [0xad4314]
mov dword [esp + 0x1c], 2
cmp dword [esp + 0x1c], edx
jl 0x4054ad
mov dword [esp + 0x18], 0xa4d073ff
inc dword [esp + 0x18]
mov dword [esp + 0x18], edx
jmp 0x40549d
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x405483
push edx
push 0x1511
push edx
push 0x14aa
push edx
call ebx
push eax
call edi
push eax
call dword [0xad42f4]
xor edx, edx
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x405499
push edx
push edx
push edx
call dword [0xad41fc]
xor edx, edx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jle 0x40545d
dec dword [esp + 0x1c]
jns 0x40544b
xor ecx, ecx
inc ecx
mov dword [esp + 0x24], 0xfffffffd
mov dword [esp + 0x3c], 0xfffffffe
mov dword [esp + 0x3c], 0xd2d1a4e6
mov dword [esp + 0x3c], edx
mov dword [esp + 0x10], edx
jmp 0x4054df
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x44], 0x46721591
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x4054cf
mov dword [esp + 0x10], edx
jmp 0x4054fa
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xb0], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x4054eb
mov dword [esp + 0x10], edx
jmp 0x405519
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xac], 0x84593f6a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x405506
mov dword [esp + 0x10], edx
jmp 0x405538
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x8c], 0xfffc
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x405525
mov dword [esp + 0x24], 0xffffffec
cmp dword [esp + 0x24], 9
jg 0x40562a
xor esi, esi
inc esi
mov dword [esp + 0x18], 6
cmp dword [esp + 0x24], edx
je 0x405582
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x405578
push edx
push edx
call dword [0xad406c]
xor edx, edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], eax
jmp 0x4055ff
mov dword [esp + 0x28], 0xfff9
mov dword [esp + 0x18], edx
jmp 0x4055f9
mov dword [esp + 0x20], 0xfffffff8
mov dword [esp + 0x20], edx
jmp 0x4055e5
mov dword [esp + 0x14], esi
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x4055bd
push edx
push edx
push 0xb86
push edx
call dword [0xad41b4]
xor edx, edx
mov dword [esp + 0x14], edx
jmp 0x4055db
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x44], ecx
mov dword [esp + 0x28], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jle 0x4055c3
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edx
jle 0x40559e
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x44], edx
jne 0x4055ff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jle 0x405590
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x405614
push edx
push edx
call dword [0xad401c]
xor edx, edx
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 9
jle 0x405555
mov esi, dword [esp + 0x5c]
xor ecx, ecx
inc ecx
inc dword [esp + 0x8c]
mov eax, 0xffff
mov dword [esp + 0x14], 0x906c902d
mov dword [esp + 0x38], 8
mov dword [esp + 0x2c], 0x928d9ba5
mov dword [esp + 0x1c], 0xbf118c84
mov dword [esp + 0x20], eax
mov eax, 0x2c9aa6f
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x28], 0x1449babe
push 6
mov dword [esp + 0x44], 0xf7713567
pop eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], edx
jmp 0x4056a0
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x64], 6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x405690
mov dword [esp + 0x10], edx
jmp 0x4056bd
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x48], 0xc9c3d069
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x4056ad
cmp dword [esp + 0x68], edx
jne 0x4056e3
cmp dword [esp + 0x38], edx
jne 0x4056d3
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
cmp eax, 0xea44
setle cl
cmp dword [esp + 0x1c], ecx
je 0x4056fb
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x48]
xor edx, edx
mov eax, dword [esp + 0x78]
cmp ecx, eax
mov eax, dword [esp + 0x20]
setge dl
dec dword [esp + 0x20]
xor ecx, ecx
cmp eax, edx
jle 0x40571d
inc ecx
mov eax, ecx
jmp 0x405720
xor eax, eax
inc ecx
mov edx, 0xffff
cmp edx, eax
sbb eax, eax
neg eax
sub eax, dword [esp + 0x64]
jne 0x405737
cmp dword [esp + 0x6c], eax
je 0x405739
xor ecx, ecx
mov eax, dword [esp + 0x2c]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [esp + 0x48]
jne 0x40575b
cmp dword [esp + 0x20], ecx
je 0x405767
cmp dword [esp + 0x28], 0
je 0x405767
xor eax, eax
inc eax
jmp 0x405769
xor eax, eax
mov dword [esp + 0x38], eax
xor edx, edx
mov eax, dword [esp + 0x14]
cmp eax, 0xa4ee
setle dl
imul edx, dword [esp + 0x38]
sub edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
neg edx
cmp edx, eax
setl cl
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov eax, dword [esp + 0x64]
inc ecx
mov eax, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
cmp ecx, eax
sbb eax, eax
add eax, 0xfffffffa
cmp eax, 0x944d
jne 0x4057c2
cmp dword [esp + 0x20], 0
jne 0x4057c2
xor eax, eax
jmp 0x4057c4
mov eax, ecx
cmp eax, ecx
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x543a
setg cl
mov dword [esp + 0x48], ecx
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
cmp eax, 0x440afaa9
mov eax, dword [esp + 0x64]
setge cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x20]
setne dl
xor ecx, ecx
cmp eax, edx
setg cl
xor eax, eax
mov dword [esp + 0x14], ecx
inc eax
mov dword [esp + 0x38], eax
xor edx, edx
mov dword [esp + 0x20], 0x60477862
mov dword [esp + 0x20], 3
cmp dword [esp + 0x20], 0xe
jl 0x40584b
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x40583f
push edx
call dword [0xad428c]
xor edx, edx
cmp dword [esp + 0x20], edx
jne 0x40584b
inc dword [esp + 0x20]
jmp 0x405824
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x405864
push 0x1e30
push edx
call dword [0xad41e4]
xor edx, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x18], edx
jmp 0x405957
mov dword [esp + 0x10], 0x67a876e6
mov dword [esp + 0x10], 4
cmp dword [esp + 0x10], 6
je 0x40593c
xor ecx, ecx
inc ecx
mov dword [esp + 0x1c], 9
mov dword [esp + 0x14], edx
jmp 0x4058b8
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xa0], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x4058a5
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x1c], edx
jl 0x40592d
mov dword [esp + 0x30], 0x164f943a
cmp dword [esp + 0x18], edx
jne 0x4058de
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
push 0
setne cl
xor eax, eax
sub ecx, 0x7f955e3d
cmp eax, ecx
mov eax, dword [esp + 0x14]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
mov eax, dword [esp + 0x1c]
setle cl
xor edx, edx
imul ecx, ecx, 0x6091
cmp ecx, eax
setl dl
imul edx, dword [esp + 0x34]
mov dword [esp + 0x2c], edx
dec dword [esp + 0x20]
pop edx
jns 0x4058c8
xor ecx, ecx
inc ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 6
jne 0x405897
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x405953
push edx
push edx
push edx
push edx
call dword [0xad420c]
xor edx, edx
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe5
jge 0x405879
mov dword [esp + 0x14], edx
jmp 0x40597b
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xe4], 0xd7f825e7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x405968
mov dword [esp + 0x14], edx
jmp 0x40599b
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xc4], 8
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x405988
cmp dword [esp + 0xcc], edx
je 0x4059e6
mov dword [esp + 0x14], 0xfffffffb
mov dword [esp + 0x14], edx
jmp 0x4059dd
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x4059d9
push edx
push edx
push 0x20e7
push 0x9b9
push edx
call dword [0xad42f8]
xor edx, edx
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffff7
jne 0x4059b9
jmp 0x405a16
mov dword [esp + 0x14], 0x90197f0a
mov dword [esp + 0x14], 0x13
jmp 0x405a0f
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x405a0b
call dword [0xad41bc]
xor edx, edx
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xa
jge 0x4059f8
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x405a36
push 0x1518
push edx
push edx
call ebx
push eax
call edi
push eax
call dword [0xad4058]
xor edx, edx
mov dword [esp + 0x38], 2
cmp dword [esp + 0x38], edx
jl 0x40609c
xor esi, esi
inc esi
mov dword [esp + 0x20], 0xa4d073ff
mov dword [esp + 0x24], 0xccb03629
mov dword [esp + 0x28], 0xc2da8afc
mov dword [esp + 0x2c], 0xc9995890
mov dword [esp + 0x40], 0x968939f5
mov dword [esp + 0x30], 0xb6cd3335
mov dword [esp + 0x1c], 0x168aa2d3
mov dword [esp + 0x3c], 0x7825
mov dword [esp + 0x3c], 0xe83a
push 9
pop eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], 0x4feccdf
mov dword [esp + 0x4c], 0xa10b
mov dword [esp + 0x14], 0xec3d2506
mov dword [esp + 0x80], eax
mov dword [esp + 0x18], 0xfffa
mov dword [esp + 0x7c], 0xfff9
mov dword [esp + 0x10], edx
jmp 0x405adb
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x60], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x405acf
mov dword [esp + 0x10], edx
jmp 0x405afa
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xa4], 0xa7c5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x405ae7
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x80]
inc dword [esp + 0x18]
mov eax, dword [esp + 0x34]
sub ecx, eax
mov eax, 0xffff
cmp ecx, eax
sbb eax, eax
neg eax
sub eax, dword [esp + 0x30]
neg eax
sbb eax, eax
inc eax
cmp eax, dword [esp + 0x34]
jge 0x405b44
cmp dword [esp + 0x18], edx
jne 0x405b46
mov esi, edx
mov ecx, dword [esp + 0x24]
xor edx, edx
mov eax, dword [esp + 0x24]
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setge dl
xor ecx, ecx
cmp edx, esi
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x2c]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
test ecx, ecx
setg al
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], 0
je 0x405b9a
cmp dword [esp + 0x40], 0
je 0x405b9a
xor esi, esi
inc esi
mov eax, esi
jmp 0x405b9f
xor esi, esi
xor eax, eax
inc esi
xor edx, edx
cmp eax, 0x5c08
sete dl
xor ecx, ecx
sub edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x60]
cmp eax, edx
mov eax, dword [esp + 0x4c]
setge cl
sub eax, ecx
neg eax
sbb eax, eax
inc eax
cmp eax, dword [esp + 0x34]
jge 0x405d13
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], 0x7dd35ab2
mov dword [esp + 0x14], 0
jmp 0x405bf2
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xd4], esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x405be3
mov dword [esp + 0x14], 0
jmp 0x405d06
mov dword [esp + 0x34], 0xfffffffa
mov dword [esp + 0x30], 0x3ed3529a
mov dword [esp + 0x4c], 0xf449
dec dword [esp + 0x24]
mov dword [esp + 0x18], 0
jmp 0x405cf7
mov dword [esp + 0x2c], 0xfffffffb
cmp dword [esp + 0x30], 0
je 0x405c73
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x2c], 7
jb 0x405c5c
cmp dword [esp + 0x7c], 0
jne 0x405c5c
xor ecx, ecx
jmp 0x405c5e
mov ecx, esi
mov eax, dword [esp + 0x60]
inc ecx
xor edx, edx
cmp eax, ecx
setg dl
cmp edx, 6
je 0x405c73
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x34], 0
je 0x405c81
cmp dword [esp + 0x24], 0
jne 0x405c83
xor esi, esi
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x40]
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0x34]
cmp esi, eax
setle cl
cmp edx, ecx
jg 0x405cb3
cmp dword [esp + 0x2c], 0
jne 0x405cb3
xor esi, esi
xor edx, edx
inc esi
jmp 0x405cb8
xor esi, esi
inc esi
mov edx, esi
mov eax, dword [esp + 0x2c]
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
mov byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
je 0x405cf3
push 0
push 0x394
push 0x94c
call ebx
push eax
call edi
push eax
call dword [0xad4070]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x22
jg 0x405c2f
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x18
jle 0x405c06
jmp 0x405d91
mov dword [esp + 0x14], 0x9988bf30
mov byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
je 0x405d2f
push 0
call dword [0xad41a8]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov eax, 0xcafd932b
mov dword [esp + 0xa4], eax
cmp dword [esp + 0x2c], eax
jne 0x405d64
cmp dword [esp + 0x1c], 0
je 0x405d64
mov edx, esi
jmp 0x405d66
xor edx, edx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
cmp eax, edx
setle cl
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], 0x844380e0
inc dword [esp + 0x20]
xor ecx, ecx
mov dword [esp + 0x1c], 0xfcb50bf3
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], 0xb051af7f
mov dword [esp + 0x3c], 7
mov dword [esp + 0x3c], 0x6845
mov dword [esp + 0x34], 0xfffe
mov dword [esp + 0x10], ecx
jmp 0x405ddc
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x84], 5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x405dc9
mov dword [esp + 0x10], ecx
jmp 0x405df7
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x9c], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x405de8
cmp dword [esp + 0x1c], ecx
je 0x405e2e
mov eax, dword [esp + 0x1c]
xor edx, edx
cmp eax, 0x7597
mov eax, dword [esp + 0x1c]
setle dl
xor ecx, ecx
add edx, 0xf65e
cmp edx, eax
setg cl
cmp ecx, dword [esp + 0x1c]
je 0x405e2c
mov eax, esi
jmp 0x405e30
xor ecx, ecx
mov eax, ecx
mov dword [esp + 0x28], eax
xor edx, edx
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
cmp eax, ecx
setge dl
mov dword [esp + 0x30], edx
xor edx, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x84], edx
dec dword [esp + 0x34]
mov dword [esp + 0x20], edx
jmp 0x406083
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x405e8b
push edx
push 0x1511
push edx
push 0x14aa
push edx
call ebx
push eax
call edi
push eax
call dword [0xad42f4]
xor edx, edx
mov dword [esp + 0x18], 0x64a6847d
mov dword [esp + 0x28], esi
mov dword [esp + 0x28], 0xa1dc7e90
mov dword [esp + 0x10], edx
jmp 0x405eb8
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x94], 0x506ed55c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x405ea5
mov dword [esp + 0x10], edx
jmp 0x405ed8
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xb4], 8
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x405ec5
mov dword [esp + 0x18], edx
jmp 0x40605e
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x28], 0xf29c8dda
mov dword [esp + 0x1c], edx
jmp 0x405f0e
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x50], 0xa339
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x405efe
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], 2
jg 0x40605a
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x50]
cmp ecx, eax
setle dl
xor eax, eax
cmp edx, 0xffffffff
setne al
mov dword [esp + 0x98], eax
lea ecx, [eax - 0xffff]
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0xad01
setl al
xor edx, edx
imul eax, dword [esp + 0x10]
imul ecx, eax, 0x7854
mov eax, dword [esp + 0x10]
cmp ecx, eax
setne dl
cmp edx, 0xcbad
jge 0x405f8d
cmp dword [esp + 0x18], 0
jne 0x405f8d
xor edx, edx
jmp 0x405f8f
mov edx, esi
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, dword [esp + 0x18]
jge 0x405fa4
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
xor edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x28]
cmp eax, ecx
setle dl
cmp edx, 0xac89d693
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0x7527
mov eax, dword [esp + 0x10]
setle dl
xor ecx, ecx
cmp eax, edx
setge cl
neg ecx
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x50]
test eax, eax
mov eax, dword [esp + 0x10]
setne cl
mov edx, dword [esp + eax*4 + 0x50]
xor eax, eax
cmp ecx, 0x6bbb
sete al
imul edx, eax
dec edx
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 0xffffffff
setle al
mov dword [esp + 0xc0], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jle 0x405f24
xor edx, edx
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffff8
jl 0x405ee8
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x40607f
push edx
push edx
push edx
call dword [0xad41fc]
xor edx, edx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jle 0x405e65
dec dword [esp + 0x38]
jns 0x405a4b
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x1c], 0x5252cb13
mov dword [esp + 0x1c], edx
jmp 0x4060bd
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0xfc], 2
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x4060aa
mov dword [esp + 0x1c], edx
jmp 0x4060fe
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x4060e5
push 0x21fe
push edx
push edx
push edx
call dword [0xad407c]
xor edx, edx
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x4060fa
push edx
push edx
call dword [0xad41c4]
xor edx, edx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jle 0x4060ca
mov eax, esi
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [esp + 0x88]
mov edi, edx
mov esi, eax
call fcn.00405061
add eax, esi
add eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret