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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x23c
push ebx
push esi
push edi
mov ebx, ecx
mov dword [esp + 0x4c], edx
push 3
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], 0
pop edi
jmp 0x404615
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xa4], 1
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x404602
mov dword [esp + 0xa4], 0xffffffef
jmp 0x40463b
mov dword [esp + 0x24], 0x99244325
dec dword [esp + 0x24]
inc dword [esp + 0xa4]
cmp dword [esp + 0xa4], 0x15
je 0x404628
mov byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
je 0x404659
push 0
call dword [0x311c094]
call fcn.00402283
cmp dword [ebx + 0x10], 0
jne 0x40466b
xor al, al
jmp 0x40603f
xor esi, esi
mov dword [esp + 0x14], 0xb26bdde0
inc esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x14], 0xffffffe6
jmp 0x4046e3
mov dword [esp + 0x28], 0x45ee28fd
xor edx, edx
mov dword [esp + 0x24], 0xffcf33f2
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
cmp eax, ecx
setge dl
xor ecx, ecx
cmp edx, 0x7278fa8f
setle cl
xor eax, eax
cmp ecx, 0xcfce
setl al
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
sub eax, 0xb54
mov dword [esp + 0x28], eax
xor eax, eax
mov byte [esp + 0xf], al
cmp byte [esp + 0xf], al
je 0x4046df
push eax
push eax
push eax
call dword [0x311c060]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffef
je 0x404684
lea eax, [esp + 0x4c]
push eax
push 0x5b38
push 0
push 0x538
call fcn.0040814a
mov dword [esp + 0x30], esi
add esp, 0x10
mov dword [esp + 0x1c], 0x9226
xor ecx, ecx
mov dword [esp + 0x24], 0xc38ec326
mov dword [esp + 0x24], 0xd3ec93cc
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], ecx
jmp 0x40474f
mov byte [esp + 0xf], cl
cmp byte [esp + 0xf], 0
je 0x40474b
push ecx
call dword [0x311c0a4]
xor ecx, ecx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x14
jge 0x404737
mov eax, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
push edi
setg dl
add edx, 0xfffc
mov dword [esp + 0x28], edx
xor edx, edx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
cmp ecx, eax
lea ecx, [esp + 0x16c]
setge dl
sub edx, dword [esp + 0x24]
neg edx
sbb edx, edx
inc edx
sub dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], esi
call fcn.004203c0
xor edx, edx
mov dword [esp + 0x14], edx
jmp 0x4047da
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x168]
mov dword [eax + ecx*4], 0x50faeb38
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x4047c4
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], dl
je 0x4047f1
push edx
call dword [0x311c040]
push 2
mov dword [esp + 0x1c], 0x1a
pop edi
jmp 0x4048b7
push edi
lea ecx, [esp + 0x178]
call fcn.004203c0
mov dword [esp + 0x14], 0x137b1891
mov dword [esp + 0x14], 0
jmp 0x404833
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x174]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x404820
mov byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
je 0x40484d
push 0
call dword [0x311c034]
mov dword [esp + 0x14], 0
jmp 0x4048a1
mov dword [esp + 0x1c], 0x613717be
mov dword [esp + 0x24], 0xfffffffc
cmp dword [esp + 0x1c], 0
je 0x404872
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
xor edx, edx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x174]
cmp dword [eax], ecx
mov eax, dword [esp + 0x168]
setne dl
mov dword [eax], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x404857
lea ecx, [esp + 0x174]
call fcn.00420a76
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe8
jg 0x404801
lea ecx, [esp + 0x168]
call fcn.00420a76
push 3
pop esi
mov dword [esp + 0x10], esi
xor edx, edx
mov dword [esp + 0x14], 1
mov dword [esp + 0x14], edx
jmp 0x4048f8
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x228], 0x70ad
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x4048e5
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], edx
jl 0x404974
mov dword [esp + 0x1c], edx
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x40492b
push edx
push 0x22a4
push 0xe66
call dword [0x311c1c8]
xor edx, edx
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x1c], edx
jl 0x40496e
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x40494e
push edx
push 0x1f4e
call dword [0x311c1b0]
xor edx, edx
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], 0
je 0x404968
push edx
push 0xa5
push edx
call dword [0x311c02c]
xor edx, edx
dec dword [esp + 0x1c]
jns 0x404935
dec dword [esp + 0x14]
jns 0x404909
mov dword [esp + 0x28], 5
mov dword [esp + 0x10], 0x24a8c6a5
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x20], 0x8a1bab0c
mov dword [esp + 0x10], edx
jmp 0x4049b1
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x8c], 0xe6d99275
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x40499e
mov dword [esp + 0x10], edx
jmp 0x404af0
mov dword [esp + 0x28], 0xdb85613
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], 0xbb000e2e
mov dword [esp + 0x38], 0x3de467b4
mov dword [esp + 0x2c], esi
cmp dword [esp + 0x10], edx
je 0x4049eb
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
xor ecx, ecx
cmp eax, 0x2aa6
setl cl
imul eax, ecx, 3
add eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x1c]
jl 0x404a0c
cmp dword [esp + 0x10], edx
je 0x404a0f
xor edx, edx
inc edx
mov eax, dword [esp + 0x28]
xor ecx, ecx
add eax, dword [esp + 0x10]
cmp eax, edx
setle cl
sub ecx, dword [esp + 0x1c]
je 0x404a28
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], 0xca404523
dec dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
sub ecx, eax
jne 0x404aa9
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
neg eax
sbb eax, eax
neg eax
cmp eax, 0x7bde5156
setge cl
xor edx, edx
add ecx, 0x11f0b9f5
imul ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
cmp eax, ecx
setg dl
xor ecx, ecx
imul edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp eax, edx
mov eax, dword [esp + 0x1c]
setl cl
xor edx, edx
cmp ecx, 0xae73
setge dl
xor ecx, ecx
cmp edx, eax
setne cl
imul ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x38]
jg 0x404aa9
xor edx, edx
jmp 0x404aac
xor edx, edx
inc edx
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x1c]
setl cl
xor edx, edx
cmp ecx, 0x8487
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
cmp ecx, eax
setl dl
mov dword [esp + 0x1c], edx
xor edx, edx
cmp dword [esp + 0x2c], edx
jne 0x404afb
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff7
je 0x4049c1
mov dword [esp + 0x18], 9
jmp 0x404b3a
mov dword [esp + 0x14], 0xb
jmp 0x404b2f
mov dword [esp + 0x20], edx
jmp 0x404b24
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x8c], edx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 1
jl 0x404b15
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xe
jge 0x404b0f
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x27
jg 0x404b05
mov dword [esp + 0x1c], edx
lea ecx, [esp + 0x15c]
mov dword [esp + 0x54], 0xaafd55be
push edi
call fcn.004203c0
push esi
lea ecx, [esp + 0xb8]
call fcn.004203c0
mov dword [esp + 0x2c], 0x7750
lea ecx, [esp + 0x12c]
push 4
call fcn.004203c0
xor edx, edx
mov dword [esp + 0x38], 0x7f355c0c
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], edi
jge 0x404baf
xor edi, edi
inc edi
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x15c]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x404b94
jmp 0x404bb2
xor edi, edi
inc edi
mov dword [esp + 0x10], edx
jmp 0x404bce
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xb4]
mov dword [eax + ecx*4], 0x56a3367f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x404bb8
push 4
mov dword [esp + 0x14], edx
pop esi
jmp 0x404bf3
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x12c]
mov dword [eax + ecx*4], 0xe450
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x404bdd
mov dword [esp + 0x10], edx
jmp 0x404c12
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1f4], 0xf7b1466a
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x404bff
mov byte [esp + 0xf], dl
cmp byte [esp + 0xf], dl
je 0x404c29
push edx
call dword [0x311c1d4]
mov esi, dword [esp + 0x15c]
mov eax, dword [esp + 0xb4]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
cmp ecx, edi
jb 0x404c91
mov eax, dword [esp + 0x2c]
xor edx, edx
cmp dword [esi], ecx
setge dl
xor ecx, ecx
imul edx, dword [esi + 4]
cmp edx, eax
mov eax, dword [esp + 0xb4]
setle cl
xor edx, edx
sub ecx, 5
cmp dword [esi + 4], ecx
setne dl
xor ecx, ecx
cmp edx, 0x5ac3d6c1
mov dword [eax], edx
setg cl
xor eax, eax
test ecx, ecx
setns al
test eax, eax
je 0x404c91
mov eax, dword [esp + 0x12c]
cmp dword [eax + 4], 0
jne 0x404c91
xor ecx, ecx
jmp 0x404c93
mov ecx, edi
xor eax, eax
cmp ecx, dword [esi + 4]
lea ecx, [esp + 0x12c]
setg al
mov dword [esp + 0x1f4], eax
call fcn.00420a76
lea ecx, [esp + 0xb4]
call fcn.00420a76
lea ecx, [esp + 0x15c]
call fcn.00420a76
mov dword [esp + 0x18], 0x10c93b4e
mov byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
je 0x404ce2
push 0
call dword [0x311c0ac]
push 2
mov dword [esp + 0x1c], 0
pop esi
cmp dword [esp + 0x18], 0x18
jg 0x404dcb
push esi
lea ecx, [esp + 0x148]
call fcn.004203c0
push 3
lea ecx, [esp + 0x1a0]
call fcn.004203c0
xor edx, edx
mov dword [esp + 0x20], edx
jmp 0x404d2d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x144]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jl 0x404d1b
mov dword [esp + 0x20], edx
jmp 0x404d4f
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x19c]
mov dword [eax + ecx*4], 0x4ebb0cb8
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x404d39
mov ecx, dword [esp + 0x144]
mov dword [ecx + 4], edx
mov dword [esp + 0x14], edx
jmp 0x404d75
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x90], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x404d66
mov dword [esp + 0x94], edx
jmp 0x404d98
mov dword [esp + 0x2c], edi
mov dword [esp + 0x2c], 0xc0bf90a2
inc dword [esp + 0x94]
cmp dword [esp + 0x94], esi
jle 0x404d85
dec dword [ecx + 4]
cmp dword [ecx + 4], 0xffffffec
jne 0x404d60
lea ecx, [esp + 0x19c]
call fcn.00420a76
lea ecx, [esp + 0x144]
call fcn.00420a76
inc dword [esp + 0x18]
jmp 0x404ced
mov dword [esp + 0x14], 0
jmp 0x404de8
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1d4], 0xf9ca
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x404dd5
mov dword [esp + 0x10], edi
lea ecx, [esp + 0xcc]
push esi
call fcn.004203c0
mov dword [esp + 0x14], 0xd7d41305
lea ecx, [esp + 0xc0]
mov dword [esp + 0x28], 0x9dbe
push esi
call fcn.004203c0
xor edx, edx
inc edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], 0
jmp 0x404e40
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jl 0x404e2e
mov dword [esp + 0x20], 0
jmp 0x404e66
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xc0]
mov dword [eax + ecx*4], 0xefce06df
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jl 0x404e50
mov dword [esp + 0x10], 0
or edi, 0xffffffff
cmp dword [esp + 0x10], edi
jl 0x404f3c
mov esi, dword [esp + 0xcc]
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x10], 0
je 0x404f0f
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
cmp ecx, eax
setg dl
imul edx, dword [esp + 0x10]
cmp edx, edi
je 0x404edf
cmp dword [esp + 0x1c], 0
je 0x404edf
xor ecx, ecx
inc ecx
jmp 0x404ee1
xor ecx, ecx
mov eax, dword [esp + 0x10]
sub ecx, eax
je 0x404ef5
cmp dword [esp + 0x10], 0
je 0x404ef5
xor eax, eax
inc eax
jmp 0x404ef7
xor eax, eax
add eax, 0x51efdb7
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x10]
je 0x404f0f
xor edx, edx
inc edx
jmp 0x404f11
xor edx, edx
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp edx, eax
push 1
setne cl
xor eax, eax
cmp ecx, dword [esi + 4]
pop edx
setne al
mov dword [esp + 0x14], eax
dec dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jge 0x404e88
push 2
pop esi
mov eax, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xc0]
sub ecx, dword [eax]
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setg dl
sub edx, esi
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
sub ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x14]
setne dl
sub eax, 0x557bc775
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, edx
mov eax, dword [esp + 0xcc]
setne cl
xor edx, edx
cmp ecx, dword [eax]
setne dl
xor eax, eax
cmp edx, 0x4f90bf56
setne al
xor ecx, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp eax, dword [edx + 4]
setle cl
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0xc0]
call fcn.00420a76
lea ecx, [esp + 0xcc]
call fcn.00420a76
mov dword [esp + 0x10], 0xffffffe3
cmp dword [esp + 0x10], 0xffffffe9
push 3
pop edi
jg 0x4053aa
xor ebx, ebx
mov dword [esp + 0x28], 0x8876942a
mov dword [esp + 0x14], ebx
jmp 0x405024
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x204], 0xeac8b13e
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x405011
dec dword [esp + 0x28]
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x405045
push 0x44f
push ebx
call dword [0x311c0a8]
mov dword [esp + 0x18], 0x28fbc781
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], 0xc18ab9c2
mov dword [esp + 0x20], ebx
jmp 0x405072
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x180], 0xffffffff
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 4
jl 0x40505f
mov dword [esp + 0x20], ebx
jmp 0x405092
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x1c8], 0xffffffff
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x40507f
mov dword [esp + 0x20], ebx
jmp 0x40516c
mov dword [esp + 0x1c], ebx
jmp 0x4050ba
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x9c], 0xffffffff
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 1
jl 0x4050a7
mov eax, dword [esp + 0x20]
cmp dword [esp + eax*4 + 0x180], ebx
je 0x4050e2
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1cc], eax
test eax, eax
je 0x4050e2
xor edx, edx
inc edx
jmp 0x4050e4
mov edx, ebx
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x180]
mov eax, dword [esp + 0x184]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xd21c
mov eax, dword [esp + 0x20]
setl cl
add ecx, edx
sub ecx, dword [esp + eax*4 + 0x180]
sub ecx, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp ecx, 5
sete al
sub eax, dword [esp + 0x14]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x14], edi
cmp dword [esp + 0x14], ebx
jl 0x405168
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x405159
push ebx
push 0x1376
push ebx
push ebx
call dword [0x311c0c0]
cmp dword [esp + 0x1cc], ebx
jne 0x405168
dec dword [esp + 0x14]
jns 0x405140
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jle 0x4050a1
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x405187
call dword [0x311c1b4]
mov dword [esp + 0x24], 0xfffffffd
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
jne 0x4051ec
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, 0x2294bb48
setle cl
cmp ecx, dword [esp + 0x18]
je 0x4051b1
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
cmp ecx, eax
setne dl
imul edx, dword [esp + 0x10]
mov dword [esp + 0x1dc], edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + 0x10]
test eax, eax
push esi
setns cl
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov eax, dword [esp + 0x14]
setge dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [esp + 0x1c]
setle bl
xor ecx, ecx
cmp ebx, eax
setge cl
xor edx, edx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp eax, ecx
lea ecx, [esp + 0x10c]
setge dl
mov dword [esp + 0x58], edx
call fcn.004203c0
mov dword [esp + 0x2c], 0xfffffff7
xor ebx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], 0xfffffffb
mov dword [esp + 0x18], ebx
jmp 0x40527c
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x40], 0x99841b3c
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x40526c
mov dword [esp + 0x18], ebx
jmp 0x40529e
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x108]
mov dword [eax + ecx*4], 0xebb6748f
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x405288
mov dword [esp + 0x40], 0x10
cmp dword [esp + 0x40], 1
jge 0x40537e
mov dword [esp + 0x14], 0x814b733c
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], 1
jg 0x40536c
mov esi, dword [esp + 0x108]
xor ecx, ecx
mov dword [esp + 0x28], 0x79253a34
mov eax, dword [esp + 0x14]
mov edx, 0xffff76f2
cmp eax, dword [esi + 4]
mov eax, dword [esp + 0x14]
setl cl
xor ebx, ebx
sub edx, ecx
cmp edx, eax
mov eax, dword [esp + 0x14]
setge bl
sub ebx, 0x58e3
neg ebx
sbb ebx, ebx
xor ecx, ecx
inc ebx
cmp ebx, eax
setle cl
xor ebx, ebx
cmp dword [esp + 0x40], ecx
jge 0x405324
cmp dword [esp + 0x40], ebx
je 0x405324
xor edx, edx
inc edx
jmp 0x405326
mov edx, ebx
mov eax, dword [esp + 0x28]
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x44]
setne cl
sub ecx, eax
mov eax, dword [esp + 0x40]
add eax, ecx
mov dword [esp + 0x28], eax
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x40535d
push ebx
push 0x1d19
push 0x132f
call dword [0x311c024]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jle 0x4052d5
dec dword [esp + 0x40]
cmp dword [esp + 0x40], 1
jl 0x4052b7
push 2
pop esi
inc dword [esp + 0x24]
lea ecx, [esp + 0x108]
call fcn.00420a76
lea ecx, [esp + 0x54]
call fcn.00402b62
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe9
jle 0x405003
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x20], 0xfffffffa
lea ecx, [esp + 0xe4]
push 4
call fcn.004203c0
mov dword [esp + 0x24], 0xfffffff7
lea ecx, [esp + 0x114]
push esi
call fcn.004203c0
mov dword [esp + 0x2c], 0x50e8
xor edx, edx
mov dword [esp + 0x2c], 0xfffffffe
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x18], edx
jmp 0x40540b
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xe4]
mov dword [eax + ecx*4], 0xc7b5c6ef
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x4053f5
mov dword [esp + 0x18], edx
jmp 0x40542e
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x114]
mov dword [eax + ecx*4], 1
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x405418
cmp dword [esp + 0x20], edx
jne 0x40544a
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xe4]
or dword [eax], 0xffffffff
mov dword [esp + 0x24], 0xfffffff6
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x20], edx
jge 0x40547b
cmp dword [esp + 0x24], edx
je 0x40547b
xor edx, edx
inc edx
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp edx, eax
sete cl
imul ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4054a1
mov eax, dword [esp + 0xe4]
cmp dword [eax + 8], 0
je 0x4054a1
xor ecx, ecx
inc ecx
jmp 0x4054a3
xor ecx, ecx
mov eax, dword [esp + 0x114]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x114]
inc dword [esp + 0x28]
call fcn.00420a76
lea ecx, [esp + 0xe4]
call fcn.00420a76
cmp dword [ebx + 0x14], 0x10
jb 0x4054d3
mov ecx, dword [ebx]
jmp 0x4054d5
mov ecx, ebx
cmp dword [ebx + 0x14], 0x10
mov dword [esp + 0x48], ecx
jb 0x4054e3
mov edx, dword [ebx]
jmp 0x4054e5
mov edx, ebx
mov eax, dword [ebx + 0x10]
add eax, edx
cmp ecx, eax
je 0x405dd0
push esi
lea ecx, [esp + 0x84]
call fcn.004203c0
xor ebx, ebx
mov dword [esp + 0x18], ebx
jmp 0x40551d
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x80]
mov dword [eax + ecx*4], 0x99ff6065
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x405507
mov dword [esp + 0x18], ebx
jmp 0x405539
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x5c], 6
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x405529
mov dword [esp + 0x60], 1
cmp dword [esp + 0x60], ebx
jl 0x4056a6
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x1c], ebx
jmp 0x405572
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x100], 8
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x40555f
mov dword [esp + 0x10], 1
cmp dword [esp + 0x10], ebx
jl 0x4055d5
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x4055a7
push ebx
push 0x178f
push 0x23e1
push 0x14dd
call dword [0x311c020]
mov eax, dword [esp + 0x60]
xor edx, edx
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + eax*4]
cmp eax, dword [ecx + esi*4]
setle dl
mov dword [esp + 0x100], edx
dec dword [esp + 0x10]
jns 0x405586
push 2
pop esi
mov dword [esp + 0x10], 1
cmp dword [esp + 0x10], ebx
jl 0x405696
mov dword [esp + 0x28], 0x89e1
xor ebx, ebx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x80]
cmp dword [eax + ecx*4], 0xfffffff7
sete bl
imul ebx, dword [eax + edx*4]
cmp ebx, 0x780
jle 0x405617
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x10]
xor ecx, ecx
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x60]
cmp eax, esi
mov esi, dword [esp + 0x80]
setl cl
xor edx, edx
push 2
cmp ecx, dword [esi + edi*4]
setne dl
xor eax, eax
test edx, edx
mov edx, dword [esp + 0x14]
setg al
xor ecx, ecx
cmp eax, dword [esi + ebx*4]
pop esi
setge cl
xor eax, eax
cmp ecx, 0x88ad
setge al
xor ecx, ecx
cmp eax, 0xffff692f
mov eax, dword [esp + 0x28]
setne cl
add edx, ecx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
sub ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + eax*4 + 0x100], ecx
dec dword [esp + 0x10]
jns 0x4055e7
xor ebx, ebx
dec dword [esp + 0x60]
push 2
pop esi
jns 0x405551
push 3
pop edi
lea ecx, [esp + 0x80]
call fcn.00420a76
mov eax, dword [esp + 0x48]
mov al, byte [eax]
cmp al, 0x30
jl 0x405871
cmp al, 0x39
jg 0x405871
call fcn.004036be
push 0x3b3c
lea eax, [esp + 0x50]
push eax
push 0x50cc
lea eax, [esp + 0x54]
push ebx
push eax
call fcn.0040bcfd
add esp, 0x14
lea ecx, [esp + 0x68]
push esi
call fcn.004203c0
mov dword [esp + 0x10], 8
mov dword [esp + 0x2c], 0x64939e63
mov dword [esp + 0x28], 0x89ced66
mov dword [esp + 0x28], 0x25f321ee
mov dword [esp + 0x18], ebx
jmp 0x40572d
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
mov dword [eax + ecx*4], 0xdf75dcec
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x40571a
mov dword [esp + 0x18], ebx
jmp 0x405749
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x58], 0xffffffff
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jl 0x405739
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 1
jg 0x405857
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x68]
imul ecx, dword [eax + ecx*4], 0x1c09
sub ecx, dword [eax + edx*4]
mov eax, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
imul eax, ecx
imul ecx, eax, 0xc257
mov eax, dword [esp + 0x58]
cmp ecx, eax
setle dl
xor ebx, ebx
cmp edx, 0x6e86ff18
setge bl
xor edx, edx
mov dword [esp + 0x58], ebx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x68]
cmp dword [eax + ecx*4], ebx
mov eax, 0xacae7bf1
setge dl
cmp eax, edx
sbb eax, eax
inc eax
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x68]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x68]
cmp eax, dword [esi]
setne cl
xor eax, eax
sub ecx, dword [esi + edx*4]
cmp ecx, 0x7a4bedcc
setg al
sub eax, 0xfffffff7
neg eax
sbb eax, eax
inc eax
sub eax, dword [esi + edi*4]
add eax, 0x5126
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
imul eax, dword [ecx + edx*4]
test eax, eax
je 0x405835
xor ebx, ebx
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x405845
push 0x2139
push ebx
call dword [0x311c03c]
jmp 0x405845
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jle 0x40575f
push 2
pop esi
lea ecx, [esp + 0x68]
call fcn.00420a76
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x30]
inc ecx
push 3
pop edi
jmp 0x4054d5
mov dword [esp + 0x14], 1
lea ecx, [esp + 0x120]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], 8
mov dword [esp + 0x2c], 0xbc999589
mov dword [esp + 0x2c], 0xfffffffb
push 0xfffffffffffffffd
pop eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x38], 0x392715ee
push esi
call fcn.004203c0
mov dword [esp + 0x38], 0x4f12
xor edx, edx
mov dword [esp + 0x28], 0xfffd
inc edx
mov dword [esp + 0x38], 0xed96
mov dword [esp + 0x24], 0x74c1
mov dword [esp + 0x10], ebx
jmp 0x405906
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x50], 0xa062
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x4058f6
mov dword [esp + 0x10], ebx
jmp 0x405925
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x21c], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x405912
mov dword [esp + 0x10], ebx
jmp 0x405943
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x120]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x405931
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x120]
inc dword [ecx + 4]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x673e
mov eax, dword [esp + 0x30]
setle cl
xor ebx, ebx
cmp ecx, eax
mov eax, dword [esp + 0x50]
setg bl
xor edx, edx
sub ebx, eax
mov eax, dword [esp + 0x1c]
cmp ebx, eax
mov eax, dword [esp + 0x38]
setge dl
xor ecx, ecx
cmp edx, eax
setg cl
add ecx, dword [esp + 0x28]
jne 0x4059a7
mov eax, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp + 0x30], 0xfffffffe
mov dword [esp + 0x14], ebx
jmp 0x4059db
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x4059d7
push 0x158
push ebx
push 0x1363
push 0x1991
call dword [0x311c1cc]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x1b
jne 0x4059b7
lea ecx, [esp + 0x120]
call fcn.00420a76
push esi
lea ecx, [esp + 0x78]
call fcn.004203c0
xor edx, edx
inc edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x18], ebx
jmp 0x405a18
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x74]
mov dword [eax + ecx*4], 0x9b3198a8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x405a05
mov dword [esp + 0x18], ebx
jmp 0x405a37
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x1e0], 0x80d1c1d6
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x405a24
mov dword [esp + 0x18], edx
cmp dword [esp + 0x18], ebx
jl 0x405aaf
mov esi, dword [esp + 0x74]
mov dword [esp + 0x1c], 5
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x74]
cmp dword [eax + ecx*4], ebx
je 0x405a64
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x74]
mov eax, dword [eax + ecx*4]
cmp eax, dword [esi + 4]
jle 0x405a7c
cmp dword [esp + 0x1c], ebx
jne 0x405a7c
mov edx, ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x74]
push 1
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1e4], 0xffffffff
dec dword [esp + 0x1c]
pop edx
jns 0x405a4b
lea ecx, [esp + 0x74]
call fcn.00420a76
lea ecx, [esp + 0x4c]
call fcn.00404006
mov dword [esp + 0x14], 0x7ddc85f7
xor esi, esi
mov dword [esp + 0x2c], 0xfb770a77
inc esi
mov dword [esp + 0x2c], 0xfd11d962
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], 0xffff
push 2
mov dword [esp + 0x30], 0x42e40c18
mov dword [esp + 0x20], ebx
pop edi
jmp 0x405b0c
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1ec], 0x7b5c6eff
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x405af9
mov dword [esp + 0x14], ebx
jmp 0x405b5f
mov dword [esp + 0x2c], 0xffffffff
lea ecx, [esp + 0x190]
push edi
call fcn.004203c0
mov dword [esp + 0x1c], ebx
jmp 0x405b45
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x190]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x405b33
inc dword [esp + 0x30]
lea ecx, [esp + 0x190]
call fcn.00420a76
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x1c
jge 0x405b18
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x2c], 0x5cdbe8e5
mov dword [esp + 0x38], 0xfb6318d5
mov dword [esp + 0x38], 0x99fb023e
mov dword [esp + 0x38], esi
mov dword [esp + 0x38], 0x585b7f37
mov dword [esp + 0x38], 0x63e8e1b8
mov dword [esp + 0x38], 0xead9bacc
push 3
mov dword [esp + 0x34], 5
mov dword [esp + 0x20], ebx
pop edi
jmp 0x405bc2
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x210], 0xf934f545
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jl 0x405baf
dec dword [esp + 0x30]
cmp dword [esp + 0x2c], ebx
je 0x405be5
push 0xfffffffffffffffd
pop eax
mov dword [esp + 0xf0], eax
lea ecx, [esp + 0xd8]
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x14], 0xfffffffa
push 1
call fcn.004203c0
mov dword [esp + 0x30], 0x11e043ee
lea ecx, [esp + 0x150]
push 1
call fcn.004203c0
mov dword [esp + 0x18], 0xfffffff6
lea edx, [esp + 0xd8]
lea ecx, [esp + 0xb0]
call fcn.004040f7
lea edx, [esp + 0x150]
lea ecx, [esp + 0xb0]
call fcn.004041e4
mov eax, dword [esp + 0xd8]
xor ebx, ebx
mov dword [esp + 0xf8], ebx
push 0x1a
pop esi
mov edx, dword [eax]
xor eax, eax
test edx, edx
setns al
xor ecx, ecx
cmp eax, 0x123d4a1c
setg cl
add ecx, edx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xd8]
imul ecx, dword [eax]
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov dword [esp + 0x18], 0x17
jmp 0x405f0c
mov dword [esp + 0x1c], 0x83c17a3f
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], 0xdd8e181f
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
je 0x405ece
cmp dword [esp + 0x14], ebx
je 0x405ece
xor eax, eax
inc eax
jmp 0x405ed0
mov eax, ebx
cmp eax, dword [esp + 0x1c]
jge 0x405eda
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x150]
xor edx, edx
cmp dword [eax], 0xb56bf5e
mov eax, dword [esp + 0xf8]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
neg ecx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jle 0x405ea5
lea ecx, [esp + 0x150]
call fcn.00420a76
lea ecx, [esp + 0xd8]
call fcn.00420a76
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
push 8
pop eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x2c], 0xbc0a0867
cmp dword [esp + 0x10], ebx
je 0x405fc0
mov eax, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setg dl
xor ebx, ebx
cmp edx, eax
setg bl
sub ebx, dword [esp + 0x14]
neg ebx
sbb ebx, ebx
inc ebx
sub ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
neg ebx
sbb ebx, ebx
xor ecx, ecx
inc ebx
cmp ebx, eax
setle cl
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x18], eax
jne 0x405fbc
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], 0xfff7
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x10], esi
jmp 0x406036
mov dword [esp + 0x24], 0x62b56095
xor ecx, ecx
mov eax, dword [esp + 0x1c]
inc ecx
mov eax, dword [esp + 0x18]
xor ebx, ebx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
sub ecx, eax
sub ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
setne bl
xor edx, edx
cmp ebx, eax
setl dl
sub ecx, edx
xor edx, edx
cmp ecx, edi
setg dl
mov dword [esp + 0x18], edx
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xa
je 0x405fde
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret