Function at 0x405ac0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xcc
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
cmp dword [eax], 1
push esi
push edi
je 0x405ae5
mov eax, 0xd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
cmp ecx, 0x40a470
je 0x4069e4
xor edi, edi
cmp dword [ebp + 0x10], edi
je 0x405b03
cmp dword [ebp + 0x14], edi
je 0x4069e4
mov ecx, dword [eax + 0x18]
cmp ecx, edi
je 0x4069d8
cmp ecx, 8
ja 0x4069d8
cmp ecx, 2
je 0x405b26
mov dword [eax + 0x10], edi
mov edx, dword [ebx]
mov dword [edx + 0x14], edi
jmp 0x405b2e
cmp dword [eax + 0x10], edi
jne 0x405b2e
mov dword [eax + 0x14], edi
mov eax, dword [ebx]
cmp dword [eax + 0x1c], 0x20
jb 0x405b39
mov dword [eax + 0x10], edi
mov eax, dword [ebx]
mov ecx, dword [eax + 0x1c]
cmp ecx, 4
jb 0x4069cc
cmp ecx, 0x18
ja 0x4069cc
mov ecx, dword [eax + 0x20]
cmp ecx, edi
je 0x405b5f
cmp ecx, 0x9fff6
jbe 0x405b6b
mov eax, 6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [eax + 0x24], edi
jne 0x405b89
mov ecx, dword [eax + 0x12c]
neg ecx
sbb ecx, ecx
and ecx, 0xb80
add ecx, 0x480
mov dword [eax + 0x24], ecx
mov eax, dword [ebx]
mov edx, dword [eax + 0x24]
cmp edx, 0x10
jb 0x4069c0
cmp edx, 0xffff
ja 0x4069c0
mov ecx, dword [eax + 0x12c]
cmp ecx, 0x20
jbe 0x405bba
mov eax, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, ecx
jae 0x405bca
mov eax, 0xa
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [eax + 0x130]
cmp ecx, edi
jne 0x405caa
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x10
jae 0x405bfa
shr ecx, 1
add ecx, 2
cmp ecx, 5
jae 0x405bef
mov ecx, 5
mov dword [eax + 0x130], ecx
jmp 0x405cbc
jne 0x405c80
cmp edx, 0xc0
ja 0x405c17
mov dword [eax + 0x130], 7
jmp 0x405cbc
cmp edx, 0x180
ja 0x405c2e
mov dword [eax + 0x130], 8
jmp 0x405cbc
cmp edx, 0x240
ja 0x405c42
mov dword [eax + 0x130], 9
jmp 0x405cbc
cmp edx, 0x480
ja 0x405c56
mov dword [eax + 0x130], 0xa
jmp 0x405cbc
cmp edx, 0x900
ja 0x405c6a
mov dword [eax + 0x130], 0xb
jmp 0x405cbc
mov ecx, 0x1200
cmp ecx, edx
sbb edx, edx
neg edx
add edx, 0xc
mov dword [eax + 0x130], edx
jmp 0x405cbc
cmp edx, 0x180
ja 0x405c94
mov dword [eax + 0x130], 0xd
jmp 0x405cbc
mov ecx, 0x480
cmp ecx, edx
sbb edx, edx
neg edx
add edx, 0xe
mov dword [eax + 0x130], edx
jmp 0x405cbc
cmp ecx, 5
jb 0x4069b4
cmp ecx, 0xf
ja 0x4069b4
mov esi, dword [ebx]
cmp dword [esi + 8], edi
je 0x405d81
mov edi, dword [esi + 0x24]
cmp edi, 0xc0
je 0x405d36
cmp edi, 0x240
je 0x405d36
cmp edi, 0x480
je 0x405d36
cmp edi, 0x900
je 0x405d36
cmp edi, 0x1200
je 0x405d36
cmp edi, 0x100
je 0x405d36
cmp edi, 0x200
je 0x405d36
cmp edi, 0x400
je 0x405d36
cmp edi, 0x800
je 0x405d36
cmp edi, 0x1000
je 0x405d36
cmp edi, 0x2000
je 0x405d36
cmp edi, 0x4000
je 0x405d36
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x20]
call fcn.0040b3a0
test eax, eax
je 0x405d2a
mov eax, dword [esi + 0x1c]
cmp eax, 8
je 0x405d5e
cmp eax, 0xc
je 0x405d5e
cmp eax, 0x10
je 0x405d5e
cmp eax, 0x14
je 0x405d5e
cmp eax, 0x18
jne 0x405d2a
cmp dword [esi + 0x144], 8
ja 0x405d2a
cmp dword [esi + 0x20], 0xbb80
ja 0x405d81
cmp edi, 0x1200
ja 0x405d2a
cmp dword [esi + 0x12c], 0xc
ja 0x405d2a
cmp dword [esi + 0x144], 0x10
jb 0x405d94
mov dword [esi + 0x144], 0xf
mov eax, dword [ebx]
mov ecx, dword [eax + 0x144]
cmp dword [eax + 0x140], ecx
jb 0x405db0
mov dword [eax + 0x140], ecx
lea ebx, [ebx]
mov eax, dword [ebx]
mov esi, dword [eax + 0x158]
xor ecx, ecx
cmp esi, ecx
je 0x405df7
mov edx, dword [eax + 0x15c]
cmp edx, ecx
jbe 0x405df7
xor eax, eax
cmp edx, ecx
jbe 0x405df7
mov ecx, esi
cmp dword [ecx], 0
je 0x405ddc
mov edi, dword [ecx]
cmp dword [edi], 3
je 0x405de6
inc eax
add ecx, 4
cmp eax, edx
jb 0x405dd0
jmp 0x405df5
mov eax, dword [esi + eax*4]
mov ecx, dword [ebx + 4]
add eax, 0x10
mov dword [ecx + 0x1b88], eax
xor ecx, ecx
mov eax, dword [ebx]
cmp dword [eax + 0x158], ecx
jne 0x405e15
cmp dword [eax + 0x15c], ecx
jbe 0x405e15
mov eax, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ecx
cmp dword [eax + 0x15c], ecx
jbe 0x405f8b
mov edx, dword [eax + 0x158]
mov esi, dword [edx + ecx*4]
mov eax, dword [esi]
test eax, eax
je 0x405e09
cmp eax, 3
jne 0x405e69
cmp dword [esp + 0x20], 0
jne 0x405e09
lea edi, [esi + 0x10]
mov dword [esp + 0x20], 1
call fcn.0040b3f0
test eax, eax
je 0x405e09
jmp 0x405f74
cmp eax, 4
jne 0x405e82
cmp dword [esp + 0x1c], 0
jne 0x405e09
mov dword [esp + 0x1c], 1
jmp 0x405f74
cmp eax, 5
jne 0x405ea7
mov eax, dword [esi + 0xa0]
push eax
add esi, 0x10
push esi
call fcn.0040b790
add esp, 8
test eax, eax
je 0x405e09
jmp 0x405f74
cmp eax, 6
jne 0x405f74
lea edi, [esi + 0x10]
mov edx, edi
call fcn.0040b910
test eax, eax
je 0x405e09
mov eax, dword [edi]
cmp eax, 1
jne 0x405f5c
cmp dword [esp + 0x24], 0
jne 0x405e09
mov edx, dword [esi + 0x14]
mov dword [esp + 0x24], eax
mov edi, 0x5c2254
mov eax, edx
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x405f06
test cl, cl
je 0x405f02
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x405f06
add eax, 2
add edi, 2
test cl, cl
jne 0x405ee6
xor eax, eax
jmp 0x405f0b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x405f43
mov edi, 0x5c2260
mov eax, edx
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x405f36
test cl, cl
je 0x405f32
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x405f36
add eax, 2
add edi, 2
test cl, cl
jne 0x405f16
xor eax, eax
jmp 0x405f3b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x405e09
mov eax, 0x20
cmp dword [esi + 0x1c], eax
jne 0x405e09
cmp dword [esi + 0x20], eax
jne 0x405e09
jmp 0x405f74
cmp eax, 2
jne 0x405f74
cmp dword [esp + 0x10], 0
jne 0x405e09
mov dword [esp + 0x10], 1
mov ecx, dword [esp + 0xc]
mov eax, dword [ebx]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, dword [eax + 0x15c]
jb 0x405e35
mov ecx, dword [ebx + 4]
xor esi, esi
mov dword [ecx], esi
mov edx, dword [ebx]
xor ecx, ecx
cmp dword [edx + 0x18], esi
jbe 0x405fcc
mov eax, 0x2c
mov edx, dword [ebx + 4]
mov dword [eax + edx - 0x28], esi
mov edx, dword [ebx + 4]
mov dword [eax + edx + 0x1c6c], esi
mov edx, dword [ebx + 4]
mov dword [eax + edx], esi
mov edx, dword [ebx + 4]
mov dword [eax + edx + 0x1c94], esi
mov edx, dword [ebx]
inc ecx
add eax, 4
cmp ecx, dword [edx + 0x18]
jb 0x405fa0
mov eax, dword [ebx + 4]
mov dword [eax + 0x24], esi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1cb8], esi
mov edx, dword [ebx + 4]
mov dword [edx + 0x4c], esi
mov eax, dword [ebx + 4]
mov dword [eax + 0x1ce0], esi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x28], esi
mov edx, dword [ebx + 4]
mov dword [edx + 0x1cbc], esi
mov eax, dword [ebx + 4]
mov dword [eax + 0x50], esi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1ce4], esi
mov edx, dword [ebx]
xor ecx, ecx
cmp dword [edx + 0x28], esi
jbe 0x40603b
mov eax, 0x1ce8
jmp 0x406020
mov edx, dword [ebx + 4]
mov dword [eax + edx - 0x1c94], esi
mov edx, dword [ebx + 4]
mov dword [eax + edx], esi
mov edx, dword [ebx]
inc ecx
add eax, 4
cmp ecx, dword [edx + 0x28]
jb 0x406020
mov eax, dword [ebx + 4]
mov dword [eax + 0xd4], esi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1d68], esi
mov edx, dword [ebx]
xor eax, eax
cmp dword [edx + 0x18], esi
jbe 0x406099
mov ecx, 0x1a70
jmp 0x406060
mov edx, dword [ebx + 4]
mov dword [edx + eax*8 + 0x100], esi
mov edx, dword [ebx + 4]
mov dword [edx + eax*8 + 0x1d6c], esi
mov edx, dword [ebx + 4]
mov dword [edx + eax*8 + 0x104], esi
mov edx, dword [ebx + 4]
mov dword [edx + eax*8 + 0x1d70], esi
mov edx, dword [ebx + 4]
mov dword [ecx + edx], esi
mov edx, dword [ebx]
inc eax
add ecx, 4
cmp eax, dword [edx + 0x18]
jb 0x406060
mov eax, dword [ebx + 4]
mov dword [eax + 0x140], esi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1dac], esi
mov edx, dword [ebx + 4]
mov dword [edx + 0x144], esi
mov eax, dword [ebx + 4]
mov dword [eax + 0x1db0], esi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1a90], esi
mov edx, dword [ebx + 4]
mov dword [edx + 0x148], esi
mov eax, dword [ebx + 4]
mov dword [eax + 0x1db4], esi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x14c], esi
mov edx, dword [ebx + 4]
mov dword [edx + 0x1db8], esi
mov eax, dword [ebx + 4]
mov dword [eax + 0x1a94], esi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1ac0], esi
mov edx, dword [ebx + 4]
mov dword [edx + 0x1dbc], esi
mov eax, dword [ebx + 4]
mov dword [eax + 0x1ac4], esi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1dc0], esi
mov eax, dword [ebx]
mov edx, dword [eax + 0x20]
fild dword [eax + 0x20]
test edx, edx
jge 0x406129
fadd qword [0x5c2678]
mov eax, dword [eax + 0x24]
fmul qword [0x5c26c0]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
test eax, eax
jge 0x406144
fadd qword [0x5c2678]
fdivp st(1)
mov edx, dword [ebx + 4]
fadd qword [0x5c2580]
fnstcw word [esp + 0xc]
movzx eax, word [esp + 0xc]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [edx + 0x1acc], ecx
mov eax, dword [ebx + 4]
fldcw word [esp + 0xc]
cmp dword [eax + 0x1acc], esi
jne 0x40618e
mov ecx, eax
mov dword [ecx + 0x1acc], 1
mov edx, dword [ebx + 4]
mov dword [edx + 0x1ad0], esi
mov eax, dword [ebx + 4]
mov dword [eax + 0x1b8c], esi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1b90], esi
mov edx, dword [ebx]
mov eax, dword [edx + 0x24]
xor ecx, ecx
shr eax, 1
je 0x4061b9
inc ecx
shr eax, 1
jne 0x4061b4
mov edx, dword [edx + 0x1c]
lea eax, [edx + ecx + 1]
mov ecx, 0x1e
cmp ecx, eax
mov eax, dword [ebx + 4]
sbb edx, edx
neg edx
mov dword [eax + 0x1c40], edx
mov edx, dword [ebx]
mov eax, dword [edx + 0x12c]
cmp eax, 4
ja 0x4061e6
mov eax, 4
xor ecx, ecx
shr eax, 1
je 0x4061f5
lea esp, [esp]
inc ecx
shr eax, 1
jne 0x4061f0
mov edx, dword [edx + 0x1c]
lea eax, [edx + ecx + 1]
mov ecx, 0x1e
cmp ecx, eax
mov eax, dword [ebx + 4]
sbb edx, edx
neg edx
mov dword [eax + 0x1c48], edx
mov ecx, dword [ebx + 4]
xor edi, edi
mov dword [ecx + 0x1c44], edi
mov esi, dword [ebx + 4]
add esi, 0x1bf4
call fcn.0040c770
mov edx, dword [ebx + 4]
mov dword [edx + 0x1c30], 0x40c940
mov eax, dword [ebx + 4]
mov dword [eax + 0x1c2c], 0x40f1c0
mov ecx, dword [ebx + 4]
mov eax, 0x40cf60
mov dword [ecx + 0x1c34], eax
mov edx, dword [ebx + 4]
mov dword [edx + 0x1c38], 0x40d6e0
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1c3c], eax
mov edx, dword [ebx + 4]
cmp dword [edx + 0x1bf4], edi
je 0x406333
mov eax, edx
cmp dword [eax + 0x1c10], edi
je 0x4062bb
mov ecx, dword [ebx]
mov ecx, dword [ecx + 0x12c]
cmp ecx, 4
jae 0x406299
mov dword [eax + 0x1c30], 0x561e60
jmp 0x4062d9
cmp ecx, 8
jae 0x4062aa
mov dword [eax + 0x1c30], 0x561ec0
jmp 0x4062d9
cmp ecx, 0xc
jae 0x4062cf
mov dword [eax + 0x1c30], 0x561f40
jmp 0x4062d9
cmp dword [eax + 0x1c20], edi
je 0x4062cf
mov dword [eax + 0x1c30], 0x561fe0
jmp 0x4062d9
mov dword [eax + 0x1c30], 0x561b00
mov edx, dword [ebx + 4]
cmp dword [edx + 0x1c08], edi
je 0x4062ff
mov eax, edx
mov dword [eax + 0x1c34], 0x5620f0
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1c3c], 0x5622e0
jmp 0x406316
mov edx, dword [ebx + 4]
mov eax, 0x5620f0
mov dword [edx + 0x1c34], eax
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1c3c], eax
mov eax, dword [ebx + 4]
cmp dword [eax + 0x1c08], edi
je 0x406333
cmp dword [eax + 0x1c04], edi
je 0x406333
mov dword [eax + 0x1c2c], 0x562bd0
mov eax, dword [ebx + 4]
cmp dword [eax + 0x1c40], edi
je 0x406348
mov dword [eax + 0x1c2c], 0x40f4a0
mov edx, dword [ebx]
mov dword [edx], edi
mov eax, dword [ebx + 4]
mov edx, dword [ebp + 0xc]
mov dword [eax + 0x1c58], edi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1c5c], edx
mov eax, dword [ebx + 4]
mov edx, dword [ebp + 0x10]
mov dword [eax + 0x1c68], 0x40a470
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1c60], edx
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x14]
mov dword [eax + 0x1c64], ecx
mov edx, dword [ebx + 4]
mov ecx, dword [ebp + 0x18]
mov dword [edx + 0x1c6c], edi
mov eax, dword [ebx + 4]
mov dword [eax + 0x1c74], ecx
mov edx, dword [ebx]
mov eax, dword [edx + 0x24]
push eax
push ebx
call fcn.004075a0
add esp, 8
test eax, eax
je 0x4063df
mov ecx, dword [ebx + 4]
mov esi, dword [ecx + 0x1ac8]
push 0x8000
mov dword [esi + 0x10], edi
mov dword [esi + 0xc], edi
mov dword [esi + 8], 0x2000
call fcn.004b0c90
add esp, 4
mov dword [esi], eax
cmp eax, edi
jne 0x4063eb
mov edx, dword [ebx]
mov dword [edx], 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx]
cmp dword [eax + 4], edi
je 0x406650
mov eax, dword [eax + 0x24]
mov ecx, dword [ebx + 4]
inc eax
mov dword [ecx + 0x2e0c], eax
mov edx, dword [ebx]
mov dword [esp + 0xc], edi
cmp dword [edx + 0x18], edi
jbe 0x406462
mov esi, 0x2dec
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x2e0c]
cmp ecx, edi
jne 0x406424
push 1
jmp 0x406439
or eax, 0xffffffff
xor edx, edx
div ecx
cmp eax, 4
jae 0x406434
xor eax, eax
jmp 0x406441
add ecx, ecx
add ecx, ecx
push ecx
call fcn.004b0c90
add esp, 4
mov edx, dword [ebx + 4]
mov dword [esi + edx], eax
mov eax, dword [ebx + 4]
cmp dword [esi + eax], edi
je 0x4063d7
mov eax, dword [esp + 0xc]
mov ecx, dword [ebx]
inc eax
add esi, 4
mov dword [esp + 0xc], eax
cmp eax, dword [ecx + 0x18]
jb 0x406413
mov eax, dword [ebx + 4]
mov dword [eax + 0x2e10], edi
call fcn.00401020
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x2de0], eax
mov edx, dword [ebx + 4]
cmp dword [edx + 0x2de0], edi
jne 0x406498
mov eax, dword [ebx]
mov dword [eax], 3
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + 0x2de0]
mov edx, dword [eax]
cmp dword [edx], 9
mov dword [esp + 0xc], eax
jne 0x406484
xor ecx, ecx
cmp ecx, 0x40a180
je 0x406484
xor edx, edx
cmp edx, 0x40a210
je 0x406484
cmp ecx, 0x40a400
je 0x406484
mov edx, dword [eax + 4]
mov dword [edx], edi
mov esi, dword [eax + 4]
add esi, 0xdcc
call fcn.0040c770
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 4]
mov ecx, 0x40e020
mov dword [edx + 0x24], ecx
mov edx, dword [eax + 4]
mov dword [edx + 0x28], 0x40e790
mov edx, dword [eax + 4]
mov dword [edx + 0x2c], ecx
mov edx, dword [eax + 4]
mov dword [edx + 0x30], ecx
mov ecx, dword [eax + 4]
mov dword [ecx + 0x34], 0x40ae50
mov edx, dword [eax + 4]
cmp dword [edx + 0xdcc], edi
je 0x406555
mov ecx, edx
cmp dword [ecx + 0xdd8], edi
je 0x406526
mov dword [ecx + 0x34], 0x5627b0
mov ecx, dword [eax + 4]
mov edx, ecx
cmp dword [ecx + 0xde0], edi
je 0x406541
mov dword [edx + 0x24], 0x562490
mov ecx, 0x562680
jmp 0x406549
mov ecx, 0x562490
mov dword [edx + 0x24], ecx
mov edx, dword [eax + 4]
mov dword [edx + 0x2c], ecx
mov eax, dword [eax + 4]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
push ecx
sub esp, 0x38
lea esi, [eax + 0xdcc]
mov eax, dword [eax + 0x40]
mov ecx, 0xe
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.0040a770
add esp, 0x3c
test eax, eax
jne 0x40659e
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx]
mov dword [edx], 8
mov eax, dword [ebx]
mov dword [eax], 3
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov dword [ecx + 4], 0x40a180
mov ecx, dword [eax + 4]
xor edx, edx
mov dword [ecx + 8], edx
mov ecx, dword [eax + 4]
mov dword [ecx + 0xc], edx
mov ecx, dword [eax + 4]
mov dword [ecx + 0x10], edx
mov ecx, dword [eax + 4]
mov dword [ecx + 0x14], edx
mov ecx, dword [eax + 4]
mov dword [ecx + 0x18], 0x40a210
mov ecx, dword [eax + 4]
mov dword [ecx + 0x1c], 0x4e7050
mov ecx, dword [eax + 4]
mov dword [ecx + 0x20], 0x40a400
mov ecx, dword [eax + 4]
mov dword [ecx + 0x38], ebx
mov ecx, dword [eax + 4]
mov dword [ecx + 0xf0], edx
mov ecx, dword [eax + 4]
mov dword [ecx + 0xec], edx
mov ecx, dword [eax + 4]
mov dword [ecx + 0xf8], edx
mov dword [ecx + 0xfc], edx
mov ecx, dword [eax + 4]
mov dword [ecx + 0x100], edx
mov ecx, dword [eax + 4]
mov dword [ecx + 0xdc8], edx
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x18]
mov esi, dword [eax + 4]
mov dword [esi + 0xe28], ecx
mov ecx, dword [eax + 4]
mov dword [ecx + 0xe30], edx
mov edx, dword [eax + 4]
mov dword [edx + 0xe2c], 1
call fcn.004019c0
test eax, eax
je 0x406484
xor edi, edi
mov eax, dword [ebx + 4]
mov dword [eax + 0x2e20], edi
mov dword [eax + 0x2e24], edi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x2e28], edi
mov edx, dword [ebx + 4]
mov dword [edx + 0x2e2c], edi
mov eax, dword [ebx + 4]
mov dword [eax + 0x2e30], edi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x2e34], edi
mov edx, dword [ebx + 4]
mov dword [edx + 0x2e38], edi
mov eax, dword [ebx + 4]
mov dword [eax + 0x1c78], edi
mov eax, dword [ebx + 4]
mov dword [eax + 0x1c88], edi
mov dword [eax + 0x1c8c], edi
mov eax, dword [ebx]
mov dword [eax + 0x160], edi
mov dword [eax + 0x164], edi
mov eax, dword [ebx]
mov dword [eax + 0x168], edi
mov dword [eax + 0x16c], edi
mov eax, dword [ebx]
mov dword [eax + 0x170], edi
mov dword [eax + 0x174], edi
mov ecx, dword [ebx]
cmp dword [ecx + 4], edi
je 0x4066de
mov edx, dword [ebx + 4]
mov dword [edx + 0x2de4], edi
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + 0x1ac8]
push 0x20
mov eax, 0x664c6143
call fcn.00411500
add esp, 4
test eax, eax
jne 0x40670e
mov edx, dword [ebx]
mov dword [edx], 7
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push edi
mov eax, ebx
call fcn.00407d10
add esp, 8
test eax, eax
je 0x4063df
mov eax, dword [ebx]
cmp dword [eax + 4], edi
je 0x406736
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x2de4], 1
mov edx, dword [ebx + 4]
mov dword [edx + 0x1ad8], edi
mov eax, dword [ebx + 4]
mov dword [eax + 0x1adc], edi
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1ae0], 0x22
mov edx, dword [ebx]
mov ecx, dword [edx + 0x24]
mov eax, dword [ebx + 4]
mov dword [eax + 0x1ae8], ecx
mov edx, dword [ebx]
mov ecx, dword [edx + 0x24]
mov eax, dword [ebx + 4]
mov dword [eax + 0x1aec], ecx
mov edx, dword [ebx + 4]
mov dword [edx + 0x1af0], edi
mov eax, dword [ebx + 4]
mov dword [eax + 0x1af4], edi
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x20]
mov edx, dword [ebx + 4]
mov dword [edx + 0x1af8], eax
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x18]
mov edx, dword [ebx + 4]
mov dword [edx + 0x1afc], eax
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x1c]
mov edx, dword [ebx + 4]
mov dword [edx + 0x1b00], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x150]
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1b08], edx
mov eax, dword [eax + 0x154]
mov dword [ecx + 0x1b0c], eax
mov eax, dword [ebx + 4]
add eax, 0x1b10
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov ecx, dword [ebx]
cmp dword [ecx + 0xc], edi
je 0x406814
mov eax, dword [ebx + 4]
add eax, 0x1b94
mov dword [eax + 0x40], 0x67452301
mov dword [eax + 0x44], 0xefcdab89
mov dword [eax + 0x48], 0x98badcfe
mov dword [eax + 0x4c], 0x10325476
mov dword [eax + 0x50], edi
mov dword [eax + 0x54], edi
mov dword [eax + 0x58], edi
mov dword [eax + 0x5c], edi
mov eax, dword [ebx + 4]
lea edx, [eax + 0x1ad8]
mov eax, dword [eax + 0x1ac8]
push edx
call fcn.0040fa90
add esp, 4
test eax, eax
jne 0x406844
mov eax, dword [ebx]
mov dword [eax], 7
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push edi
mov eax, ebx
call fcn.00407d10
add esp, 8
test eax, eax
je 0x4063df
mov ecx, dword [ebx + 4]
mov dword [ecx + 0x1af0], 0xffffff
mov eax, dword [ebx + 4]
mov dword [eax + 0x1b08], edi
mov dword [eax + 0x1b0c], edi
cmp dword [esp + 0x1c], edi
jne 0x4068dd
mov edx, dword [ebx]
mov ecx, dword [ebx + 4]
xor eax, eax
cmp dword [edx + 0x15c], edi
lea edx, [esp + 0x28]
sete al
push edx
mov dword [esp + 0x2c], 4
mov dword [esp + 0x34], 8
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x1ac8]
mov dword [esp + 0x48], edi
call fcn.0040fa90
add esp, 4
test eax, eax
je 0x406830
push edi
push edi
mov eax, ebx
call fcn.00407d10
add esp, 8
test eax, eax
je 0x4063df
mov eax, dword [ebx]
mov ecx, dword [eax + 0x15c]
xor esi, esi
cmp ecx, edi
jbe 0x406946
jmp 0x4068f0
mov eax, dword [eax + 0x158]
dec ecx
xor edx, edx
cmp esi, ecx
mov ecx, dword [eax + esi*4]
sete dl
mov dword [ecx + 4], edx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x158]
mov eax, dword [ecx + esi*4]
mov edx, dword [ebx + 4]
push eax
mov eax, dword [edx + 0x1ac8]
call fcn.0040fa90
add esp, 4
test eax, eax
je 0x406983
push edi
push edi
mov eax, ebx
call fcn.00407d10
add esp, 8
test eax, eax
je 0x4063df
mov eax, dword [ebx]
mov ecx, dword [eax + 0x15c]
inc esi
cmp esi, ecx
jb 0x4068f0
mov edx, dword [ebx + 4]
cmp dword [edx + 0x1c64], edi
je 0x406997
mov eax, edx
mov ecx, dword [eax + 0x1c74]
mov edx, dword [ebx]
mov eax, dword [eax + 0x1c64]
push ecx
add edx, 0x170
push edx
push ebx
call eax
add esp, 0xc
cmp eax, 1
jne 0x406997
mov ecx, dword [ebx]
mov dword [ecx], 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx]
mov dword [ecx], 7
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebx]
cmp dword [edx + 4], edi
je 0x4069ab
mov eax, dword [ebx + 4]
mov dword [eax + 0x2de4], 2
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 9
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 3
pop ebx
mov esp, ebp
pop ebp
ret