Function at 0x463c30
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x13c
mov al, byte [esp + 0x14c]
mov byte [0x8bb990], al
neg al
push ebx
mov ebx, dword [0x727678]
push ebp
push esi
mov esi, ebx
push edi
sbb eax, eax
and eax, 0xfffffffa
add eax, 0x10
imul esi, eax
mov dword [esp + 0x8c], eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
test eax, eax
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x7c], 0
jle 0x465a53
mov ecx, dword [0x85c164]
and cl, 0xc0
neg cl
mov dword [esp + 0x78], 0
sbb ecx, ecx
and ecx, 0xfffffff8
add ecx, 8
add eax, ecx
test eax, eax
jle 0x4658c0
lea esp, [esp]
mov edi, dword [0x8bb6b4]
mov ebx, dword [esp + 0x7c]
mov eax, esi
mov esi, dword [esp + 0x78]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov edx, edi
sub edx, eax
add edx, ebx
mov ebx, dword [0x8bb6b0]
sub ecx, eax
add ecx, ebx
add ecx, esi
test edx, edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x38], ecx
jl 0x465883
mov eax, ecx
test eax, eax
jl 0x465883
mov eax, edx
cmp eax, 0x1ce
jge 0x465883
mov eax, ecx
cmp eax, 0x125
jge 0x465883
test byte [0x85c164], 0x20
je 0x463df6
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
lea ecx, [esp + 0x90]
push ecx
mov eax, ebx
imul eax, eax, 0x3e8
mov ecx, edi
imul ecx, ecx, 0x3e8
lea edx, [esp + 0x9c]
push edx
push 0
add eax, 0x1f4
push eax
add ecx, 0x1f4
push ecx
call fcn.004aec50
add esp, 0x14
push ebx
push edi
push str._NUM__NUM:
mov esi, 0x8ebf58
call fcn.004f7660
imul edi, edi, 0x125
movsx edx, byte [edi + ebx + 0x7b30a0]
add esp, 0xc
push 0xa
push 0x878bec
push edx
call dword [sym.imp.MSVCR71.dll__itoa]
add esp, 0xc
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x463d90
mov edi, 0x86bb48
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x463da1
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push 0
push 0xffffffffffffffff
push 1
mov ecx, eax
mov eax, dword [esp + 0x9c]
push 0xffffffffffffffff
and ecx, 3
push 0x32
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0xb0]
push ecx
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x32
call fcn.004b0b40
mov ebx, dword [0x8bb6b0]
mov edi, dword [0x8bb6b4]
add esp, 0x20
mov eax, dword [0x727678]
mov ecx, dword [0x85c164]
imul eax, eax, 0x1e
cdq
sub eax, edx
sar eax, 1
test ecx, 0x10000000
mov dword [esp + 0x18], eax
mov dword [0x8bb974], 0xfffffffe
je 0x463e28
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
mov eax, esi
imul eax, eax, 0x125
mov cl, byte [eax + edx + 0x74fe48]
add eax, edx
test cl, 1
mov dword [esp + 0x14], eax
je 0x465864
call fcn.0045fbd0
mov ebp, eax
mov esi, ebp
shl esi, 5
mov edx, dword [esi + 0x862b6c]
mov ecx, dword [esi + 0x862b68]
sub ebx, edx
sub edi, ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], esi
mov eax, ebx
mov ecx, edi
jns 0x463e7a
neg ecx
test eax, eax
jge 0x463e80
neg eax
cmp ecx, eax
jle 0x463e89
lea eax, [eax + ecx*2]
jmp 0x463e8c
lea eax, [ecx + eax*2]
mov ebx, ebp
imul ebx, ebx, 0x94
movsx ecx, word [ebx + 0x85dfc4]
cdq
sub eax, edx
sar eax, 1
shl ebp, 4
mov edi, dword [ebp + 0x85d170]
mov edx, dword [ebp + 0x85d174]
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0x862b70]
test al, 4
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x85d178]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x50], edi
mov dword [esp + 0x40], edx
jne 0x463ee1
mov dword [0x8bb974], 2
mov edx, dword [esi + 0x862b80]
cmp edx, 7
ja case.default.0x463ef0
jmp dword [edx*4 + 0x465a60]
mov edx, dword [esi + 0x862b7c]
test al, 2
mov eax, 0x51eb851f
je 0x463f6f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jns 0x463f18
xor eax, eax
jmp 0x463f22
cmp eax, 3
jle 0x463f22
mov eax, 3
mov eax, dword [eax*4 + 0x727730]
push eax
mov eax, dword [0x8bb974]
add eax, 0xa
imul eax, dword [esp + 0x1c]
push 0xffffffffffffffff
lea eax, [eax + eax*2]
cdq
push 0
add ecx, 0x8aaaaaaa
push 0
push ecx
and edx, 0xf
add edx, eax
movsx eax, byte [esi + 0x862b74]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x54]
push 5
push ecx
shl eax, 4
mov ecx, dword [eax + 0x862980]
push edi
push ecx
jmp 0x463fd6
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jns 0x463f81
xor eax, eax
jmp 0x463f8b
cmp eax, 3
jle 0x463f8b
mov eax, 3
mov edx, dword [eax*4 + 0x727730]
mov eax, dword [0x8bb974]
add eax, 0xa
imul eax, dword [esp + 0x18]
push edx
push 0xffffffffffffffff
push 0
lea eax, [eax + eax*2]
cdq
push 0
add ecx, 0x8aaaaaaa
push ecx
mov dword [esp + 0x94], ecx
movsx ecx, byte [esi + 0x862b74]
and edx, 0xf
add edx, eax
mov eax, dword [esp + 0x54]
push 5
push eax
shl ecx, 4
mov eax, dword [ecx + 0x86298c]
push edi
push eax
sar edx, 4
call fcn.004bc2e0
mov al, byte [0x8bb990]
test al, al
jne 0x464087
movsx eax, word [ebx + 0x85df7e]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, 0x1e
imul eax, dword [0x85c154]
mov ecx, dword [0x7273bc]
push eax
mov eax, dword [0x8bb974]
add eax, 0xc
imul eax, dword [esp + 0x1c]
push 0xffffffffffffffff
push 0
cdq
push 0
add ecx, 0xc0000000
push ecx
mov ecx, dword [ebp + 0x85d170]
and edx, 7
add edx, eax
mov eax, dword [ebp + 0x85d174]
push 0
push eax
mov eax, dword [0x86297c]
push ecx
sar edx, 3
push eax
call fcn.004bc2e0
mov edx, dword [esi + 0x862b7c]
mov ecx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jns 0x464069
xor eax, eax
jmp 0x464073
cmp eax, 3
jle 0x464073
mov eax, 3
mov edx, dword [esi + 0x862b80]
push eax
mov eax, dword [edx*4 + 0x727694]
push eax
call fcn.004bd020
mov eax, dword [esp + 0x48]
imul eax, eax, 0x3e8
mov dword [esp + 0x30], eax
mov dword [ebx + 0x85dff8], eax
mov eax, dword [esp + 0x38]
imul eax, eax, 0x3e8
mov dword [esp + 0x44], eax
mov dword [ebx + 0x85dffc], eax
mov eax, 8
mov ecx, 0x14
mov dword [esp + 0xa4], eax
mov dword [esp + 0xc8], eax
mov eax, 0x28
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ecx
mov ecx, 0xe
mov dword [esp + 0xd4], eax
mov dword [esp + 0xf0], eax
cmp dword [esi + 0x862b80], 7
mov dword [esp + 0xc0], ecx
mov edx, 0x16
mov dword [esp + 0xd0], ecx
mov ecx, 0x64
mov dword [esp + 0x9c], 0x1a
mov dword [esp + 0xa0], 0x12
mov dword [esp + 0xa8], 0x10
mov dword [esp + 0xb4], 4
mov dword [esp + 0xb8], 2
mov dword [esp + 0xbc], 0xa
mov dword [esp + 0xc4], edx
mov dword [esp + 0xcc], 0xc
mov dword [esp + 0xd8], 0x32
mov dword [esp + 0xdc], 0x1c
mov dword [esp + 0xe0], 0x18
mov dword [esp + 0xe4], 0x23
mov dword [esp + 0xe8], 0x2d
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf8], 0x1e
mov dword [esp + 0xfc], ecx
jne 0x4641c0
mov byte [esi + 0x862b75], 5
movsx ecx, byte [esi + 0x862b76]
add ecx, 5
mov eax, 0x66666667
imul ecx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
mov dword [esp + 0x60], 0
jns 0x4641e9
xor edi, edi
jmp 0x4641f3
cmp edi, 4
jle 0x4641f3
mov edi, 4
movzx ecx, byte [esi + 0x862b75]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x8bb974]
lea ecx, [ecx + edx + 0xa]
mov ebp, dword [ebp + 0x85d17c]
imul ecx, ecx, 0x3e8
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, esi
mov ecx, ebp
call fcn.004dcac0
add eax, dword [esp + 0x50]
mov dword [ebx + 0x85dff8], eax
lea ecx, [ebp + 0x40000000]
mov eax, esi
call fcn.004dcac0
add eax, dword [esp + 0x40]
test edi, edi
mov dword [ebx + 0x85dffc], eax
jle 0x46432d
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
lea ebp, [eax + eax*2]
mov eax, edi
imul eax, eax, 0x2d
mov ebx, 0x11d
shl ebp, 2
sub ebx, eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], edi
jmp 0x464290
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 0x862b7c]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jns 0x4642b1
xor eax, eax
jmp 0x4642bb
cmp eax, 3
jle 0x4642bb
mov eax, 3
mov edx, dword [eax*4 + 0x727730]
fild dword [esp + 0x2c]
push edx
mov edx, dword [0x8bb974]
mov ecx, 0xa
fmul qword [0x715850]
sub ecx, edx
mov eax, ebp
cdq
idiv ecx
push 0xffffffffffffffff
push 0
push 0
mov edi, eax
call fcn.005f275c
mov edx, dword [esp + 0x4c]
mov ecx, dword [edx + 0x85d178]
mov edx, dword [esi + 0x85dffc]
sub ecx, eax
mov eax, dword [esi + 0x85dff8]
push ecx
mov ecx, dword [0x862978]
push 0xffffffffffffffec
push edx
push eax
push ecx
mov edx, edi
call fcn.004bc2e0
mov eax, dword [esp + 0x4c]
add ebx, 0x5a
dec eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], eax
jne 0x464290
mov ecx, 0xfffffffe
mov dword [esp + 0x54], 0
mov dword [esp + 0x34], ecx
mov edi, edi
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
mov edx, ecx
neg edx
shl edx, 1
mov dword [esp + 0x2c], edx
lea edx, [ecx + ecx*2 - 6]
shl edx, 1
mov esi, 0xfffffffe
add ecx, 2
mov dword [esp + 0x68], esi
mov dword [esp + 0x94], eax
mov dword [esp + 0x4c], 2
mov dword [esp + 0x70], edx
mov dword [esp + 0x58], 4
mov dword [esp + 0x74], ecx
jmp 0x464390
mov eax, dword [esp + 0x94]
jmp 0x464390
cmp eax, 1
mov dword [esp + 0x6c], 0
jg 0x4643b0
lea eax, [esi + 1]
cmp eax, 1
mov dword [esp + 0x88], eax
jle 0x4647a0
mov eax, dword [0x727678]
mov esi, dword [0x8bb974]
imul eax, eax, 0x3e8
cdq
mov ecx, 8
sub ecx, esi
shl ecx, 1
idiv ecx
mov ebp, dword [esp + 0x80]
mov edi, dword [esp + 0x68]
lea ebx, [ebp + 0x40000000]
mov ecx, eax
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov esi, edx
shr esi, 0x1f
add esi, edx
inc edi
mov eax, esi
mov ecx, ebx
mov dword [esp + 0x88], edi
call fcn.004dcac0
imul eax, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
mov eax, esi
mov ecx, ebp
call fcn.004dcac0
mov edx, dword [esp + 0x50]
mov ebp, eax
mov eax, dword [esp + 0x1c]
imul ebp, edi
add eax, edx
add ebp, eax
mov eax, esi
mov ecx, ebx
mov dword [esp + 0x64], ebp
call fcn.004dcac0
mov ecx, dword [esp + 0x80]
mov ebx, eax
mov eax, esi
imul ebx, edi
call fcn.004dcac0
imul eax, dword [esp + 0x34]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x74]
imul esi, esi, 0x4a
mov edx, dword [esp + 0x40]
add esi, ecx
movsx edi, word [esi*2 + 0x85dfc4]
lea esi, [esi*2 + 0x85dfc4]
sub ebx, eax
add ebx, edx
cmp edi, 0xffffffff
mov dword [esp + 0x1c], ebx
je 0x464493
mov edx, dword [0x85c154]
mov eax, dword [esp + 0x20]
add edx, eax
test dl, 0x7f
je 0x464493
test byte [0x85c164], 4
je 0x4644bb
fild dword [esp + 0x1c]
mov edi, dword [0x72ed78]
push 0
sub esp, 8
fstp dword [esp + 4]
mov al, 1
fild dword [esp + 0x70]
fstp dword [esp]
call fcn.004e8db0
call fcn.005f275c
mov edi, eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x68]
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx + 0x862b75]
add edx, eax
mov word [esi], di
cmp dword [esp + edx*4 + 0xcc], ecx
jle 0x4644f6
test edi, edi
je 0x46450a
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4647a0
dec eax
mov dword [esp + 0x60], eax
jmp 0x464523
test edi, edi
jne 0x464527
test eax, eax
jne 0x464506
mov eax, dword [esp + 0x58]
test eax, eax
je 0x46453b
inc dword [esp + 0x60]
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4647a0
dec eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x6c], 1
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x464605
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x464605
mov edx, dword [esp + 0x24]
movsx eax, word [edx + 0x85df7e]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, 0x1e
imul eax, dword [0x85c154]
push eax
mov eax, dword [0x8bb974]
mov ecx, dword [esp + 0x34]
add eax, 0xc
imul eax, dword [esp + 0x1c]
push 0xffffffffffffffff
push 0
cdq
push 0
push 0
and edx, 7
add edx, eax
mov eax, dword [esp + 0x58]
push edi
push eax
mov eax, dword [0x86297c]
push ecx
sar edx, 3
push eax
call fcn.004bc2e0
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 0x862b7c]
mov dword [esp + 0x1c], eax
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
jns 0x4645b3
xor esi, esi
jmp 0x4645bd
cmp esi, 3
jle 0x4645bd
mov esi, 3
mov edx, dword [esp + 0x28]
movsx eax, byte [edx + 0x862b74]
mov ecx, dword [eax*4 + 0x727694]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x64], ecx
mov ecx, dword [edx + 0xbc]
test ecx, ecx
je 0x4645ec
mov eax, dword [esp + 0x64]
push esi
push eax
call fcn.004bd020
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x1c]
push esi
push ecx
call fcn.004c0090
mov eax, dword [esp + 0x3c]
add esp, 8
mov ecx, dword [esp + 0x6c]
test ecx, ecx
jne 0x4646e3
test eax, eax
mov ecx, dword [esp + 0x68]
lea edx, [ecx + ecx]
jge 0x46461e
neg eax
mov esi, dword [esp + 0x58]
test esi, esi
jle 0x46462c
mov ecx, dword [esp + 0x4c]
mov edx, esi
cmp eax, ecx
lea esi, [ecx + eax*2]
jg 0x464636
lea esi, [edx + eax]
mov eax, dword [esp + 0x2c]
cdq
mov ecx, 3
idiv ecx
mov ecx, dword [esp + 0x70]
push 0
push 0
add edx, ecx
imul edx, edx, 0xf
sub edx, 0xf
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul qword [0x715680]
call fcn.005f275c
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
push ecx
lea eax, [esp + 0x110]
fmul qword [0x715728]
fstp dword [esp]
call fcn.004dc670
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x862b7c]
add esp, 0xc
xor edx, edx
cmp eax, 0x64
setg dl
mov eax, esi
movsx ecx, byte [ecx + 0x862b74]
shl ecx, 4
mov ecx, dword [ecx + 0x862988]
dec edx
and edx, 0x42
push edx
cdq
sub eax, edx
mov edx, dword [0x8bb974]
mov esi, eax
mov eax, dword [esp + 0x1c]
sar esi, 1
shl eax, 4
sub esi, edx
cdq
add esi, 0xa
idiv esi
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x110]
push eax
push edi
push ebx
push ebp
call fcn.004bc350
jmp 0x4647a0
mov esi, dword [esp + 0x24]
movsx ecx, word [esi + 0x85dff6]
mov eax, dword [ecx*4 + 0x7272f0]
imul eax, eax, 0x3e8
cdq
and edx, 3
add eax, edx
sar eax, 2
add ebp, eax
mov eax, dword [ecx*4 + 0x727350]
imul eax, eax, 0x3e8
or ecx, 1
imul ecx, ecx, 0x2d
cdq
mov dword [esp + 0x1c], ecx
and edx, 3
add eax, edx
fild dword [esp + 0x1c]
sar eax, 2
push 0
add ebx, eax
fmul qword [0x715680]
push 0
call fcn.005f275c
mov dword [esp + 0x24], eax
push ecx
fild dword [esp + 0x28]
lea eax, [esp + 0x134]
fmul qword [0x715728]
fstp dword [esp]
call fcn.004dc670
mov eax, dword [esp + 0x24]
mov edx, dword [0x8bb974]
imul eax, eax, 0x16
mov ecx, 9
sub ecx, edx
cdq
idiv ecx
mov ecx, dword [0x8629c8]
add esp, 0xc
push 0
push 0xffffffffffffffff
lea edx, [esp + 0x130]
add edi, 0xffffff6a
push eax
push edx
push edi
push ebx
push ebp
call fcn.004bc350
mov dword [esi + 0x85dff8], ebp
mov dword [esi + 0x85dffc], ebx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov ebp, dword [esp + 0x4c]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x88]
add eax, 5
add ecx, 6
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x34]
sub eax, 2
dec ebp
add edi, ecx
cmp eax, 0xfffffffc
mov dword [esp + 0x68], esi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x58], eax
mov dword [esp + 0x2c], edi
jge 0x464384
inc ecx
cmp ecx, 2
mov dword [esp + 0x34], ecx
jle 0x464340
mov ebp, dword [esp + 0x3c]
jmp case.default.0x463ef0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov edi, dword [0x72ed78]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
push 0
sub esp, 8
fstp dword [esp + 4]
mov dword [esp + 0x50], ecx
fild dword [esp + 0x50]
mov al, 1
fstp dword [esp]
call fcn.004e8db0
call fcn.005f275c
mov ecx, eax
mov eax, dword [0x85c154]
imul eax, eax, 0x1e
cdq
mov esi, 0x3e8
idiv esi
mov eax, dword [esp + 0x18]
lea eax, [eax + eax*2]
push edx
cdq
sub eax, edx
mov edx, eax
movsx eax, word [ebx + 0x85dff6]
push 0xffffffffffffffff
push 0
push 0
sub eax, 4
shl eax, 0x1d
push eax
mov eax, dword [ebp + 0x85d170]
push ecx
mov ecx, dword [ebp + 0x85d174]
push ecx
push eax
sar edx, 1
push 0x8debc0
call fcn.004bc2e0
jmp case.default.0x463ef0
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
mov edi, dword [0x72ed78]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
push 0
sub esp, 8
fstp dword [esp + 4]
mov dword [esp + 0x50], edx
fild dword [esp + 0x50]
mov al, 1
fstp dword [esp]
call fcn.004e8db0
call fcn.005f275c
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
push 0
push 0xffffffffffffffff
push 0
lea esi, [esi + ecx*2]
push 0
add esi, ecx
mov ecx, dword [ebp + 0x85d170]
shl esi, 0x1d
push esi
push eax
mov eax, dword [ebp + 0x85d174]
push eax
push ecx
add edx, edx
push 0x8dea40
call fcn.004bc2e0
jmp case.default.0x463ef0
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x50]
mov edi, dword [0x72ed78]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
push 0
sub esp, 8
mov dword [esp + 0x50], eax
fstp dword [esp + 4]
fild dword [esp + 0x50]
mov al, 1
fstp dword [esp]
call fcn.004e8db0
call fcn.005f275c
movsx ecx, word [ebx + 0x85dff6]
mov edx, dword [esp + 0x18]
push 0
push 0xffffffffffffffff
push 0
push 0
sub ecx, 4
shl ecx, 0x1d
push ecx
mov ecx, dword [ebp + 0x85d170]
push eax
mov eax, dword [ebp + 0x85d174]
push eax
push ecx
add edx, edx
push 0x8deb00
call fcn.004bc2e0
jmp case.default.0x463ef0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
mov edi, dword [0x72ed78]
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
push 0
sub esp, 8
mov dword [esp + 0x48], edx
fstp dword [esp + 4]
mov al, 1
fild dword [esp + 0x48]
mov dword [0x8bb974], 0xfffffffd
fstp dword [esp]
call fcn.004e8db0
call fcn.005f275c
mov ecx, eax
mov eax, dword [0x8bb974]
add eax, 0xa
imul eax, dword [esp + 0x18]
mov edi, dword [esp + 0x3c]
lea eax, [eax + eax*2]
cdq
push 0
push 0xffffffffffffffff
and edx, 0xf
add edx, eax
movsx eax, word [ebx + 0x85dff6]
push 0
push 0
shl eax, 0x1d
sub eax, 0x7999999a
push eax
movsx eax, byte [esi + 0x862b74]
push ecx
mov ecx, dword [esp + 0x44]
push ecx
shl eax, 4
mov ecx, dword [eax + 0x862984]
push edi
sar edx, 4
push ecx
call fcn.004bc2e0
movsx eax, word [ebx + 0x85df7e]
mov ecx, dword [0x8bb974]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, 0x1e
imul eax, dword [0x85c154]
push eax
add ecx, 0xc
imul ecx, dword [esp + 0x1c]
mov eax, 0x92492493
imul ecx
mov eax, edx
add eax, ecx
mov ecx, dword [esp + 0x34]
push 0xffffffffffffffff
sar eax, 3
mov edx, eax
push 0
push 0
shr edx, 0x1f
add edx, eax
mov eax, dword [0x7273bc]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [0x86297c]
push eax
push edi
push ecx
call fcn.004bc2e0
mov edx, dword [esi + 0x862b7c]
mov ecx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jns 0x464a83
xor eax, eax
jmp 0x464a8d
cmp eax, 3
jle 0x464a8d
mov eax, 3
movsx edx, byte [esi + 0x862b74]
push eax
mov eax, dword [edx*4 + 0x727694]
push eax
call fcn.004bd020
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
movsx ebx, word [edx*2 + 0x7d4168]
xor ecx, ecx
cmp eax, 0x2c
mov eax, dword [ebp + 0x85d174]
setge cl
lea esi, [esp + 0x14]
lea edi, [esp + 0x30]
dec ecx
and ecx, 0xfa
add ecx, 0xfa
push ecx
mov ecx, dword [ebp + 0x85d170]
push eax
push ecx
call fcn.004aecd0
mov ecx, dword [0x816308]
movzx edx, al
mov dword [esp + 0x48], edx
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov ebx, dword [ebp + 0x85d174]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x816304]
mov eax, 0x10624dd3
imul edx
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp + 0x85d170]
mov edi, ecx
mov eax, esi
add esp, 0xc
sub edi, ebx
sub eax, edx
jns 0x464b33
neg eax
test edi, edi
jge 0x464b39
neg edi
cmp eax, edi
jle 0x464b42
lea eax, [edi + eax*2]
jmp 0x464b45
lea eax, [eax + edi*2]
cdq
sub eax, edx
mov ebx, dword [esp + 0x20]
mov edx, eax
sar edx, 1
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [0x72760c]
jg 0x464b74
mov dword [0x72760c], eax
mov dword [0x8bb980], ebx
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x464cd5
cmp dword [esp + 0x5c], 0x19
jg 0x464cd5
cmp ebx, 0x2c
jge 0x464cd5
mov al, byte [0x85c164]
test al, al
js 0x464cd5
mov al, byte [esp + 0x15c]
test al, al
jne 0x464cd5
mov eax, dword [esp + 0x38]
imul eax, eax, 0x3e8
sub eax, ecx
mov ecx, dword [esp + 0x48]
imul ecx, ecx, 0x3e8
sub ecx, esi
call fcn.004dcb20
mov edi, eax
mov eax, dword [0x81630c]
mov ecx, edi
sub ecx, eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x40000000
jge 0x464cd5
test byte [0x85c164], 0x40
je 0x464bf5
mov edi, ecx
mov esi, dword [0x85c26c]
lea eax, [esi - 0x20]
mov dword [esp + 0x14], eax
lea eax, [esi + esi*2]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov ecx, edi
call fcn.004dcac0
mov ebx, eax
mov eax, esi
cdq
sub eax, edx
sar eax, 1
add ebx, eax
cmp ebx, 0x20
jge 0x464c2a
mov ebx, 0x20
mov eax, dword [esp + 0x14]
cmp ebx, eax
jle 0x464c34
mov ebx, eax
mov esi, dword [0x85c268]
lea ecx, [esi - 0x18]
mov dword [esp + 0x14], ecx
lea ecx, [esi + esi]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [edi + 0x40000000]
call fcn.004dcac0
mov ecx, eax
mov eax, esi
cdq
sub eax, edx
mov edi, eax
sar edi, 1
sub edi, ecx
cmp edi, 8
jge 0x464c74
mov edi, 8
mov eax, dword [esp + 0x14]
cmp edi, eax
jle 0x464c7e
mov edi, eax
mov eax, dword [esp + 0x20]
lea edx, [eax + eax*2]
lea eax, [edx*4 + 0x8ddd08]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
push str._CITYNAME
mov esi, 0x8ebf58
mov dword [ecx + 8], eax
call fcn.004f7660
push 0
push ebx
push 0x86bb48
mov eax, 0x80000000
mov edx, edi
mov dword [0x85c11c], 0x32
call fcn.00428500
mov ebx, dword [esp + 0x3c]
add esp, 0x1c
mov ecx, dword [esp + 0x5c]
cmp ecx, 3
jle 0x464cf3
cmp ecx, 0xa
jg 0x465883
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x465883
mov al, byte [esp + 0x15c]
test al, al
jne 0x465883
mov eax, dword [0x85c154]
cmp dword [0x8bb8d4], eax
jge 0x464d14
mov dword [0x8bb8d4], eax
mov eax, 0x3e8
cdq
add ecx, 0xa
idiv ecx
mov dword [0x85c11c], eax
test byte [0x85c164], 0x20
je 0x464d74
mov ecx, dword [esp + 0x24]
mov ax, word [ecx + 0x85df7e]
test ax, ax
je 0x464d74
movsx edx, ax
push edx
lea eax, [ebx + ebx*2]
lea ecx, [eax*4 + 0x8ddd08]
mov eax, dword [ecx]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
push str._CITYNAME_a_NUM
mov esi, 0x8ebf58
mov dword [edx + 8], ecx
call fcn.004f7660
add esp, 0x14
jmp 0x464da5
lea edx, [ebx + ebx*2]
lea eax, [edx*4 + 0x8ddd08]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
push str._CITYNAME
mov esi, 0x8ebf58
mov dword [ecx + 8], eax
call fcn.004f7660
add esp, 0x10
mov ecx, dword [0x816308]
mov eax, 0x10624dd3
imul ecx
mov ebx, dword [ebp + 0x85d174]
mov esi, dword [ebp + 0x85d170]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x816304]
mov eax, 0x10624dd3
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, ebx
sub eax, esi
mov dword [0x85c11c], 0x64
jns 0x464df1
neg eax
test ecx, ecx
jge 0x464df7
neg ecx
cmp eax, ecx
jle 0x464e00
lea eax, [ecx + eax*2]
jmp 0x464e03
lea eax, [eax + ecx*2]
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x1c2
mov dword [esp + 0x5c], eax
jle 0x464f21
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x862b68]
mov ecx, dword [ecx + 0x862b6c]
imul edx, edx, 0x125
cmp byte [edx + ecx + 0x7b30a1], 4
jge 0x464eb7
mov edx, 0x1f4
sub edx, eax
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul dword [0x715874]
fld dword [0x70deb0]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x464e8b
fld st(0)
fld dword [0x715554]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x464e8b
fstp st(0)
fld dword [0x715554]
jmp 0x464ea2
fld dword [0x70deb0]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x464ea2
fstp st(0)
fld dword [0x70deb0]
fmul dword [0x715930]
call fcn.005f275c
mov edi, eax
shl edi, 0x18
jmp 0x464f53
mov ecx, 0x1f4
sub ecx, eax
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmul dword [0x715874]
fld dword [0x70deb0]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x464ef8
fld st(0)
fld dword [0x715554]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 0x41
jne 0x464ef8
fstp st(0)
fld dword [0x715554]
jmp 0x464f0f
fld dword [0x70deb0]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x464f0f
fstp st(0)
fld dword [0x70deb0]
fmul dword [0x715638]
call fcn.005f275c
mov edi, eax
shl edi, 0x18
jmp 0x464f53
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x862b68]
mov eax, dword [eax + 0x862b6c]
imul edx, edx, 0x125
xor ecx, ecx
cmp byte [edx + eax + 0x7b30a1], 4
setge cl
dec ecx
and ecx, 0xc1000000
add ecx, 0xff000000
mov edi, ecx
mov esi, dword [esp + 0x20]
mov ecx, dword [0x85c164]
xor edx, edx
cmp esi, 0x2c
setge dl
mov eax, dword [0x8bb8d8]
and cl, 0x40
push 0
push 0xc
dec edx
and edx, 0xc8
add edx, 0x2bc
neg cl
mov esi, edx
push esi
push eax
sbb ecx, ecx
and ecx, 0xffffffec
add ecx, 0xffffffba
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
fmul qword [0x715680]
call fcn.005f275c
push eax
mov eax, dword [ebp + 0x85d170]
push 0
push 0x295
push ebx
push eax
mov eax, edi
mov ecx, 0x86bb48
call fcn.004af0b0
mov edx, dword [esp + 0x4c]
movsx eax, byte [edx + 0x862b74]
add esp, 0x24
cmp eax, 6
ja case.default.0x464fce
jmp dword [eax*4 + 0x465a80]
mov edi, 0xffffe132
jmp case.default.0x464fce
mov edi, 0xffc21a1a
jmp case.default.0x464fce
mov edi, 0xff13a1ff
jmp case.default.0x464fce
mov edi, 0xffff7618
jmp case.default.0x464fce
or edi, 0xffffffff
jmp case.default.0x464fce
mov edi, 0xff80ff80
jmp case.default.0x464fce
mov edi, 0xff404040
test byte [0x85c164], 0x40
push 0
push 0xc
push esi
je 0x465047
mov ecx, dword [0x8bb8d8]
mov eax, ecx
sar eax, 0x1c
inc eax
sar eax, 1
and eax, 7
mov edx, dword [eax*4 + 0x727350]
mov esi, dword [eax*4 + 0x7272f0]
push ecx
mov ecx, dword [ebp + 0x85d174]
sub ecx, edx
mov edx, dword [ebp + 0x85d170]
push 0xc0000000
sub edx, esi
jmp 0x46505f
mov eax, dword [0x8bb8d8]
mov ecx, dword [ebp + 0x85d174]
mov edx, dword [ebp + 0x85d170]
push eax
push 0xce38e38f
dec ecx
push 0
push 0x29a
push ecx
mov ecx, 0x86bb48
mov eax, edi
push edx
call fcn.004af0b0
mov eax, dword [esp + 0x44]
add esp, 0x24
cmp eax, 0x2c
jge 0x4650be
call fcn.00428950
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + 0x862b7c]
push eax
movsx eax, byte [ebx + 0x862b74]
push eax
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push str._ECONOMY__NATIONALITY__CITYTYPE
mov esi, 0x8ebf58
call fcn.004f7660
add esp, 0x10
jmp 0x465109
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0x862b80]
cmp eax, 6
je 0x4650d2
cmp eax, 5
jne 0x4650ee
test dword [ebx + 0x862b70], 0x10000
jne 0x4650ee
movsx edx, byte [ebx + 0x862b74]
push eax
push edx
push str.Friendly__NATIONALITY__LOCTYPE
jmp 0x4650fc
push eax
movsx eax, byte [ebx + 0x862b74]
push eax
push str._NATIONALITY__LOCTYPE
mov esi, 0x8ebf58
call fcn.004f7660
add esp, 0xc
mov edx, dword [0x85c164]
mov ecx, dword [0x8bb8d8]
and dl, 0x40
neg dl
push 0
push 0xc
push 0x1f4
push ecx
sbb edx, edx
and edx, 0xffffffec
add edx, 0xffffffba
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul qword [0x715680]
call fcn.005f275c
mov ecx, dword [ebp + 0x85d170]
push eax
mov eax, dword [ebp + 0x85d174]
push 0
push 0x1f1
push eax
push ecx
mov eax, 0xff000000
mov ecx, 0x86bb48
call fcn.004af0b0
mov al, byte [0x85c164]
add esp, 0x24
test al, 0x40
push 0
push 0xc
push 0x1f4
je 0x4651b8
mov ecx, dword [0x8bb8d8]
mov edx, dword [ebp + 0x85d174]
mov eax, ecx
sar eax, 0x1c
inc eax
push ecx
mov ecx, dword [ebp + 0x85d170]
sar eax, 1
and eax, 7
mov esi, dword [eax*4 + 0x727350]
push 0xc0000000
push 0
sub edx, esi
mov esi, dword [eax*4 + 0x7272f0]
push 0x1f4
push edx
sub ecx, esi
jmp 0x4651d9
mov edx, dword [0x8bb8d8]
mov eax, dword [ebp + 0x85d174]
mov ecx, dword [ebp + 0x85d170]
push edx
push 0xce38e38f
push 0
push 0x1f4
dec eax
push eax
push ecx
mov ecx, 0x86bb48
mov eax, edi
call fcn.004af0b0
mov al, byte [0x85c164]
add esp, 0x24
test al, al
jns 0x46523e
mov eax, 0x10624dd3
imul dword [0x85c7d0]
sar edx, 6
push 0x80000000
mov eax, edx
shr eax, 0x1f
push 0x3e8
add eax, edx
push 0xffffffffffffffff
push eax
mov eax, 0x10624dd3
imul dword [0x85c7b0]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
call fcn.0045fca0
add esp, 0x14
cmp eax, 0xffffffff
je 0x46523e
mov dword [esp + 0x84], eax
mov ecx, dword [ebx + 0x862b70]
mov al, byte [0x85c164]
or ecx, 0x101
test al, 0x84
mov dword [ebx + 0x862b70], ecx
jne 0x465664
cmp dword [ebx + 0x862b80], 4
jge 0x465664
movsx eax, byte [ebx + 0x862b74]
mov edx, dword [esp + 0x24]
movsx ecx, word [edx + 0x85df7c]
shl eax, 1
movsx esi, word [eax + 0x86ba78]
lea edi, [ecx + esi]
cmp edi, 0xffffffff
jl 0x4652aa
movzx eax, byte [eax + 0x86ba88]
lea ecx, [eax + ecx + 2]
movsx eax, word [edx + 0x85df7e]
imul ecx, ecx, 0x32
cmp eax, ecx
jl 0x4654e5
mov edi, dword [esp + 0x5c]
cmp edi, 0xa6
jge 0x4654e5
cmp dword [edx + 0x85dff8], 0xffffffff
je 0x4654e5
movsx ecx, byte [ebx + 0x862b76]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub ecx, esi
add ecx, 5
cmp ecx, 5
jge 0x4652ef
mov ecx, 5
jmp 0x4652f9
cmp ecx, 0x32
jle 0x4652f9
mov ecx, 0x32
lea eax, [edi*4 + 0x1f4]
cdq
idiv ecx
mov esi, eax
call fcn.00412950
test eax, eax
jne 0x4654e1
mov al, byte [ebx + 0x862b76]
mov ecx, dword [0x81630c]
add ecx, 0x40000000
cmp al, 5
mov eax, dword [0x816310]
jl 0x4653ee
add eax, eax
call fcn.004dcac0
mov edx, dword [ebp + 0x85d178]
mov edi, eax
mov eax, dword [0x85c158]
push 1
push 0xffffffffffffffff
and edx, 0xfffffffe
lea ecx, [eax + 1]
push 0
push edx
mov eax, 0x3e8
cdq
idiv ecx
mov esi, eax
call fcn.00412950
mov ecx, dword [0x81630c]
call fcn.004dcac0
mov ecx, dword [0x816308]
mov esi, eax
mov eax, 0x10624dd3
imul ecx
mov ecx, dword [0x85c158]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add esi, edi
add eax, esi
push eax
mov eax, 0x3e8
cdq
inc ecx
idiv ecx
mov esi, eax
call fcn.00412950
mov esi, dword [0x81630c]
mov ecx, esi
call fcn.004dcac0
mov edi, eax
mov eax, dword [0x816310]
add eax, eax
mov ecx, esi
call fcn.004dcac0
mov ecx, dword [0x816304]
add edi, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edi, edx
add eax, edi
push eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x85dffc]
mov edx, dword [eax + 0x85dff8]
jmp 0x4654a1
add eax, eax
call fcn.004dcac0
mov ecx, dword [0x85c158]
mov edi, eax
mov eax, dword [ebp + 0x85d178]
push 1
and eax, 0xfffffffe
push 0xffffffffffffffff
push 0
push eax
mov eax, 0x3e8
cdq
inc ecx
idiv ecx
mov esi, eax
call fcn.00412950
mov ecx, dword [0x81630c]
call fcn.004dcac0
mov ecx, dword [0x816308]
mov esi, eax
mov eax, 0x10624dd3
imul ecx
mov ecx, dword [0x85c158]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add esi, edi
add eax, esi
push eax
mov eax, 0x3e8
cdq
inc ecx
idiv ecx
mov esi, eax
call fcn.00412950
mov esi, dword [0x81630c]
mov ecx, esi
call fcn.004dcac0
mov edi, eax
mov eax, dword [0x816310]
add eax, eax
mov ecx, esi
call fcn.004dcac0
mov ecx, dword [0x816304]
add edi, eax
mov eax, 0x10624dd3
imul ecx
mov ecx, dword [ebp + 0x85d174]
sar edx, 6
mov eax, edx
add edi, edx
mov edx, dword [ebp + 0x85d170]
shr eax, 0x1f
add eax, edi
push eax
push ecx
mov ecx, 0x14
push edx
call fcn.0045abf0
add esp, 0x20
push str.Theyre_firing_on_us_
mov esi, 0x8ebf58
call fcn.004f7660
mov eax, dword [esp + 0x28]
movsx eax, word [eax + 0x85df7e]
add esp, 4
cmp ax, 0x64
jge 0x4654e1
mov ecx, dword [esp + 0x24]
add eax, 2
mov word [ecx + 0x85df7e], ax
mov edx, dword [esp + 0x24]
cmp word [edx + 0x85df82], 0
jg 0x465664
mov edx, dword [esp + 0x24]
mov si, word [edx + 0x85df7e]
cmp si, 0xc8
jle 0x465664
mov eax, dword [ebx + 0x862b70]
test ah, 8
jne 0x465664
mov edi, dword [esp + 0x20]
mov eax, edi
call fcn.0045e610
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, edi
xor ecx, ecx
call fcn.00405d90
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jg 0x465664
mov eax, dword [0x85c158]
test eax, eax
je 0x465664
movsx eax, byte [ebx + 0x862b74]
mov edi, eax
test edi, edi
jge 0x46555f
xor edi, edi
jmp 0x465569
cmp edi, 4
jle 0x465569
mov edi, 4
movsx ecx, word [eax*2 + 0x86ba78]
mov eax, 0x99999999
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
movsx edx, si
add edx, dword [ebx + 0x862b7c]
mov eax, 0x1b4e81b5
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jge 0x4655a2
mov eax, ecx
cmp eax, 3
jle 0x4655ac
mov eax, 3
lea esi, [eax + 1]
call fcn.00412950
test eax, eax
jge 0x4655bc
xor eax, eax
jmp 0x4655c6
cmp eax, 4
jle 0x4655c6
mov eax, 4
mov edx, dword [esp + 0x20]
lea eax, [eax + edi*4]
movsx ecx, byte [edi + eax + 0x7272d0]
push ecx
push edx
call fcn.00414fc0
mov esi, eax
movsx eax, byte [ebx + 0x862b74]
movsx edx, word [eax*2 + 0x86ba78]
mov eax, 0x66666667
imul edx
sar edx, 1
mov ecx, esi
imul ecx, ecx, 0x45c
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 2
sub eax, edx
add esp, 8
cmp eax, 2
mov word [ecx + 0x8162fa], 1
jge 0x465624
mov eax, 2
jmp 0x46562e
cmp eax, 4
jle 0x46562e
mov eax, 4
mov word [ecx + 0x816322], ax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push 0
mov word [eax + 0x85df82], si
mov eax, dword [ebx + 0x862b70]
push 0
push ecx
or eax, 0x800
push 0xf
mov dword [ebx + 0x862b70], eax
call fcn.0043a8d0
add esp, 0x10
mov al, byte [0x85c164]
test al, al
jns 0x4656f8
mov eax, 0x10624dd3
imul dword [0x85c7d0]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x85d174]
mov ecx, eax
sub ecx, edx
mov eax, 0x10624dd3
imul dword [0x85c7b0]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, dword [ebp + 0x85d170]
jns 0x4656af
neg eax
test ecx, ecx
jge 0x4656b5
neg ecx
cmp eax, ecx
jle 0x4656be
lea ecx, [ecx + eax*2]
jmp 0x4656c1
lea ecx, [eax + ecx*2]
mov eax, ecx
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + 0x1e]
cmp eax, 1
jge 0x4656ea
mov eax, 1
jmp 0x465719
cmp eax, 0x1f4
jle 0x465719
mov eax, 0x1f4
jmp 0x465719
mov eax, dword [esp + 0x5c]
mov ecx, eax
add eax, 0xa
cmp eax, 1
jge 0x46570d
mov eax, 1
jmp 0x465719
cmp eax, 0x3e8
jle 0x465719
mov eax, 0x3e8
imul eax, eax, 0x64
mov edx, eax
mov eax, 0x10624dd3
imul edx
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp ecx, 0xfa
jge 0x465883
mov ecx, dword [0x8bb6b0]
mov edx, dword [0x8bb6b4]
push 0x80000000
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push edx
mov eax, 0x270f
call fcn.0045fe40
mov ecx, dword [esp + 0x34]
add esp, 0x14
cmp eax, ecx
jne 0x465883
mov eax, dword [ebx + 0x862b80]
cmp eax, 4
jge 0x465814
mov ecx, dword [ebx + 0x862b7c]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
movsx eax, byte [ebx + 0x862b74]
jge 0x4657a8
lea ecx, [eax + 0xb]
mov dword [0x8ca200], ecx
jmp 0x4657ad
mov dword [0x8ca200], eax
mov edx, dword [esp + 0x24]
movsx ecx, word [edx + 0x85df7c]
movsx edi, word [eax*2 + 0x86ba78]
add edi, ecx
cmp edi, 0xffffffff
jl 0x465883
movzx eax, byte [eax*2 + 0x86ba88]
movsx edx, word [edx + 0x85df7e]
lea ecx, [eax + ecx + 2]
imul ecx, ecx, 0x32
cmp edx, ecx
jge 0x465883
test esi, esi
jle 0x4657f7
mov eax, dword [esp + 0x150]
mov byte [eax], 1
mov ecx, dword [esp + 0x154]
mov byte [ecx], 1
mov ecx, dword [esp + 0x158]
mov eax, dword [ecx]
cmp esi, eax
jge 0x465810
mov eax, esi
mov dword [ecx], eax
jmp 0x465883
cmp eax, 7
jg 0x465883
test esi, esi
jle 0x465858
mov edx, dword [esp + 0x150]
mov byte [edx], 1
cmp dword [ebx + 0x862b80], 7
jne 0x46584b
movsx eax, byte [ebx + 0x862b74]
mov edx, dword [esp + 0x154]
add eax, 7
mov dword [0x8ca200], eax
mov byte [edx], 1
jmp 0x465801
movsx ecx, byte [ebx + 0x862b74]
mov dword [0x8ca200], ecx
mov edx, dword [esp + 0x154]
mov byte [edx], 1
jmp 0x465801
mov eax, dword [esp + 0x15c]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x54]
push eax
call fcn.00465d10
add esp, 0x10
mov ecx, dword [0x85c164]
mov edi, dword [esp + 0x78]
mov ebx, dword [0x727678]
and cl, 0xc0
inc edi
neg cl
mov esi, ebx
mov dword [esp + 0x78], edi
sbb ecx, ecx
imul esi, dword [esp + 0x8c]
mov eax, esi
cdq
sub eax, edx
and ecx, 0xfffffff8
add ecx, 8
sar eax, 1
add eax, ecx
cmp edi, eax
jl 0x463cb0
mov ecx, dword [esp + 0x7c]
mov esi, ebx
imul esi, dword [esp + 0x8c]
mov eax, esi
cdq
sub eax, edx
inc ecx
sar eax, 1
cmp ecx, eax
mov dword [esp + 0x7c], ecx
jl 0x463c84
mov eax, dword [esp + 0x84]
cmp eax, 0xffffffff
je 0x465a53
push eax
call fcn.00466e60
mov ecx, dword [0x85c810]
mov ebx, dword [0x85c7b0]
mov ebp, dword [0x85c7d0]
sub ecx, 0x80000000
mov eax, ecx
add esp, 4
and eax, 0x80000000
mov dword [0x85c810], ecx
mov dword [esp + 0x14], eax
jmp 0x465930
mov eax, dword [esp + 0x14]
mov ecx, dword [0x85c810]
test eax, eax
mov esi, 0xf424
je 0x465944
mov esi, 0xffff0bdc
and ecx, 0x7fffffff
test ecx, 0x40000000
je 0x465955
mov edx, 0x7fffffff
sub edx, ecx
mov ecx, edx
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x7d00
mov edi, 1
jle 0x46597f
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov esi, eax
cdq
xor eax, edx
sub eax, edx
add edi, edi
cmp eax, 0x7d00
jg 0x465968
mov edx, esi
call fcn.00495330
imul eax, edi
mov ecx, dword [0x85c810]
add ecx, 0x40000000
add ebx, eax
test ecx, ecx
mov esi, 0xf424
jns 0x4659ab
mov esi, 0xffff0bdc
and ecx, 0x7fffffff
test ecx, 0x40000000
je 0x4659bc
mov eax, 0x7fffffff
sub eax, ecx
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x7d00
mov edi, 1
jle 0x4659e7
nop
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov esi, eax
cdq
xor eax, edx
sub eax, edx
add edi, edi
cmp eax, 0x7d00
jg 0x4659d0
mov edx, esi
call fcn.00495330
imul eax, edi
add ebp, eax
mov eax, 0x10624dd3
imul ebp
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x10624dd3
imul ebx
push 0x80000000
sar edx, 6
push 0x3e8
mov eax, edx
push 0xffffffffffffffff
shr eax, 0x1f
push ecx
add eax, edx
push eax
call fcn.0045fca0
add esp, 0x14
cmp eax, 0xffffffff
jne 0x465926
mov dword [0x85c7d0], ebp
mov dword [0x85c7b0], ebx
call fcn.00475a60
test al, al
jne 0x465a53
push 1
call fcn.0045ca10
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x13c
ret