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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov eax, dword [0x517b28]
mov edx, dword [ebp + 0xc]
mov esi, esp
lea ecx, [eax - 1]
imul ecx, eax
mov eax, dword [0x517b2c]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
mov ecx, 0xc2cc1bd0
sete byte [esi + 0x16]
cmp eax, 0xa
lea eax, [edx + 4]
mov dword [esi + 0x78], eax
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov dword [esi + 0x4c], eax
setl byte [esi + 0x17]
mov dword [esi + 0x48], eax
jmp 0x4712a0
mov eax, dword [0x517b28]
mov edx, dword [0x517b2c]
mov edi, 0x414d09fc
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0x2c152926
cmovne edi, ebx
test eax, ecx
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
nop dword [eax]
cmp ecx, 0xf663193d
jle 0x471350
cmp ecx, 0x4bcd3dd3
jle 0x4713e0
cmp ecx, 0x6869bd0c
jle 0x4714a4
cmp ecx, 0x70485fb4
jle 0x47176a
cmp ecx, 0x76a762ec
je 0x472630
cmp ecx, 0x70485fb5
je 0x471b70
cmp ecx, 0x7b3e653b
jne 0x4712a0
mov edi, esp
push eax
sub esp, 0x18
mov ebx, esp
mov ecx, ebx
push 0x517cd0
call fcn.00473740
mov byte [ebx + 0x18], 0
call fcn.00474d30
add esp, 0x1c
mov byte [esi + 0x1b], al
mov esp, edi
mov eax, dword [0x517b28]
mov edx, dword [0x517b2c]
mov edi, 0xfc6741c7
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0x70485fb5
jmp 0x47128d
cmp ecx, 0xb7d45933
jg 0x471450
cmp ecx, 0x99594188
jg 0x4715e0
cmp ecx, 0x8b274284
jg 0x4717b4
cmp ecx, 0x8520dcc9
je 0x471b86
cmp ecx, 0x8595fdaf
je 0x471cca
cmp ecx, 0x8add58e8
jne 0x4712a0
call dword [0x512664]
push 0
call fcn.004ce891
add esp, 4
push eax
call fcn.004d14d0
add esp, 4
mov edi, esp
sub esp, 0x18
mov eax, esp
push 0
push eax
call fcn.004729c0
add esp, 8
call fcn.00472640
add esp, 0x18
mov ecx, 0x3354267d
mov esp, edi
jmp 0x4712a0
cmp ecx, 0x25b33ce0
jg 0x471626
cmp ecx, 0x6743096
jg 0x4717fe
cmp ecx, 0xf663193e
je 0x471ddc
cmp ecx, 0xfa52de4d
je 0x471de9
cmp ecx, 0xfc6741c7
jne 0x4712a0
mov edi, esp
push eax
sub esp, 0x18
mov ebx, esp
mov ecx, ebx
push 0x517cd0
call fcn.00473740
mov byte [ebx + 0x18], 0
call fcn.00474d30
add esp, 0x1c
mov ecx, 0x7b3e653b
mov esp, edi
jmp 0x4712a0
cmp ecx, 0xcda90eae
jg 0x4716f6
cmp ecx, 0xbcc9765e
jg 0x47182f
cmp ecx, 0xb7d45934
je 0x471e16
cmp ecx, 0xbb2517b7
je 0x471e27
cmp ecx, 0xbb5a172a
jne 0x4712a0
mov dword [esi + 0x64], 0
mov ecx, 0xfa52de4d
mov dword [esi + 0x5c], 0
jmp 0x4712a0
cmp ecx, 0x5ab17796
jg 0x47190f
cmp ecx, 0x4bcd3dd4
je 0x471e59
cmp ecx, 0x4e6bc4e9
je 0x471260
cmp ecx, 0x57921a34
jne 0x4712a0
mov eax, dword [esi + 0x54]
and al, 1
mov byte [esi + 0x1d], al
mov eax, dword [esi + 0x4c]
and al, 1
mov byte [esi + 0x1e], al
mov eax, dword [esi + 0x48]
and al, 1
mov byte [esi + 0x1f], al
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], eax
mov dword [esi + 8], eax
mov eax, 0x39b55497
nop word [eax + eax]
cmp eax, 0xd6f5e2ac
jg 0x471530
cmp eax, 0x95167163
je 0x471560
cmp eax, 0xa30b2984
je 0x471577
cmp eax, 0xd4656a01
jne 0x471500
mov eax, 0x95167163
jmp 0x471500
cmp eax, 0xd6f5e2ad
je 0x471e9f
cmp eax, 0x61b87218
je 0x4715bb
cmp eax, 0x39b55497
jne 0x471500
mov eax, dword [esi + 8]
mov ecx, 0xa30b2984
cmp eax, 0x517cd0
mov eax, 0x61b87218
cmove eax, ecx
jmp 0x471500
mov eax, dword [0x517b68]
mov ecx, dword [0x517b6c]
mov edi, 0xd4656a01
mov ebx, 0xd6f5e2ad
jmp 0x47158c
mov eax, dword [0x517b68]
mov ecx, dword [0x517b6c]
mov edi, 0xd4656a01
mov ebx, 0x95167163
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete al
cmp ecx, 0xa
setl ah
xor ah, al
cmovne edi, ebx
cmp edx, 0xffffffff
mov eax, edi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, edi
jmp 0x471500
sub esp, 8
movzx eax, byte [esi + 4]
mov ecx, 0x517cd0
mov byte [esp + 4], al
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call fcn.00491710
mov eax, 0xa30b2984
jmp 0x471500
cmp ecx, 0xa4cd0bfd
jg 0x4719ef
cmp ecx, 0x99594189
je 0x471f4f
cmp ecx, 0x9a97a7de
je 0x471f59
cmp ecx, 0x9ea4a699
jne 0x4712a0
cmp byte [esi + 0x1c], 0
mov ecx, 0xed7ff2a
mov eax, 0xa4cd0bfe
cmovne ecx, eax
jmp 0x4712a0
cmp ecx, 0x342c3a6a
jg 0x471a84
cmp ecx, 0x25b33ce1
je 0x471f7f
cmp ecx, 0x2c152926
je 0x472090
cmp ecx, 0x3354267d
jne 0x4712a0
push eax
mov eax, esp
mov dword [esi + 0x20], eax
push eax
mov eax, esp
mov dword [esi + 0x24], eax
push eax
mov eax, esp
mov dword [esi + 0x3c], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x10], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x28], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x2c], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x40], eax
sub esp, 0x18
mov eax, esp
mov dword [esi + 0x44], eax
call dword [0x512664]
push 0
call fcn.004ce891
add esp, 4
push eax
call fcn.004d14d0
add esp, 4
mov ebx, esp
sub esp, 0x18
mov eax, esp
push 0
push eax
call fcn.004729c0
add esp, 8
call fcn.00472640
add esp, 0x18
mov esp, ebx
xor eax, 0x3b1
mov ebx, 0x6869bd0d
mov edi, 0x8add58e8
or eax, edx
mov eax, dword [0x517b28]
sete byte [esi + 0x18]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, 0x8add58e8
jmp 0x47218f
cmp ecx, 0xdc14325f
jg 0x471abf
cmp ecx, 0xcda90eaf
je 0x4720db
cmp ecx, 0xd63cc571
je 0x4720f1
cmp ecx, 0xd66c4af4
jne 0x4712a0
mov eax, dword [0x517b28]
mov ebx, 0xaff13a33
mov edi, 0x6743097
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, 0x6743097
sete al
cmove ecx, ebx
cmp dword [0x517b2c], 0xa
setl dl
cmovge ecx, edi
xor dl, al
mov edx, dword [esi + 0x60]
cmovne ecx, ebx
mov dword [esi + 0x74], edx
jmp 0x4712a0
cmp ecx, 0x6869bd0d
je 0x472126
cmp ecx, 0x68f4490e
je 0x47213c
cmp ecx, 0x6b8d1e83
jne 0x4712a0
mov eax, dword [0x517b28]
mov ebx, 0x9a97a7de
mov edi, 0x906b08b9
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, 0x906b08b9
jmp 0x47218f
cmp ecx, 0x8b274285
je 0x47216e
cmp ecx, 0x906b08b9
je 0x4721ac
cmp ecx, 0x94b79447
jne 0x4712a0
mov ecx, 0x57921a34
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x48], 0
jmp 0x4712a0
cmp ecx, 0x6743097
je 0x4721b6
cmp ecx, 0xed7ff2a
je 0x4721e5
cmp ecx, 0x16775f8e
jne 0x4712a0
mov eax, dword [esi + 0x28]
mov ecx, 0x8520dcc9
jmp 0x4712a0
cmp ecx, 0xbcc9765f
je 0x4721fe
cmp ecx, 0xc2cc1bd0
je 0x472214
cmp ecx, 0xc7ec43cb
jne 0x4712a0
mov ecx, dword [esi + 0x2c]
call fcn.004011f0
mov eax, dword [0x517d2c]
mov edx, dword [0x517d30]
mov edi, 0x1c08b87
mov ebx, 0xe9e3b4d0
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0xe9e3b4d0
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
sete byte [esi + 4]
cmove eax, edi
cmp edx, 0xa
setl dl
setl byte [esi + 8]
cmovge eax, ebx
xor dl, cl
mov ecx, 0xe4f57ea6
cmovne eax, edi
nop word cs:[eax + eax]
nop
cmp ecx, 0x1c08b86
jg 0x4718d0
cmp ecx, 0xe4f57ea6
je 0x4718e8
cmp ecx, 0xe9e3b4d0
jne 0x4718b0
mov ecx, 0x2b2d5b0d
jmp 0x4718b0
cmp ecx, 0x1c08b87
je 0x47223c
cmp ecx, 0x2b2d5b0d
jne 0x4718b0
mov ecx, eax
jmp 0x4718b0
movzx edx, byte [esi + 4]
movzx ecx, byte [esi + 8]
mov edi, 0xe9e3b4d0
mov ebx, 0x2b2d5b0d
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x4718b0
cmp ecx, 0x5ab17797
je 0x4725c0
cmp ecx, 0x5d8bdf5c
je 0x472246
cmp ecx, 0x5e10e079
jne 0x4712a0
mov ecx, dword [esi + 0x28]
call fcn.004011f0
mov eax, dword [0x517d2c]
mov ecx, dword [0x517d30]
mov edi, 0xe9e3b4d0
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x1c08b87
cmovne edi, ebx
test eax, edx
mov eax, edi
sete byte [esi + 4]
cmove eax, ebx
cmp ecx, 0xa
mov ecx, 0xe4f57ea6
cmovge eax, edi
setl byte [esi + 8]
nop word cs:[eax + eax]
nop
cmp ecx, 0x1c08b86
jg 0x4719b0
cmp ecx, 0xe4f57ea6
je 0x4719c8
cmp ecx, 0xe9e3b4d0
jne 0x471990
mov ecx, 0x2b2d5b0d
jmp 0x471990
cmp ecx, 0x1c08b87
je 0x47225c
cmp ecx, 0x2b2d5b0d
jne 0x471990
mov ecx, eax
jmp 0x471990
movzx edx, byte [esi + 4]
movzx ecx, byte [esi + 8]
mov edi, 0xe9e3b4d0
mov ebx, 0x2b2d5b0d
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x471990
cmp ecx, 0xa4cd0bfe
je 0x472266
cmp ecx, 0xa9772e29
je 0x472295
cmp ecx, 0xaff13a33
jne 0x4712a0
mov ecx, 0x517ce8
push dword [esi + 0x74]
call fcn.00474660
mov ecx, 0x517cd0
call fcn.00474ae0
push eax
mov eax, dword [ebp + 0xc]
push dword [eax]
call fcn.004748a0
add esp, 8
mov ecx, dword [0x517b28]
mov edx, dword [0x517b2c]
mov byte [esi + 0xc], al
lea edi, [ecx - 1]
imul edi, ecx
mov ecx, edi
xor ecx, 0xfffffffe
test ecx, edi
sete ah
cmp edx, 0xa
setl bl
xor bl, ah
mov ebx, 0x6743097
mov eax, 0xbcc9765f
cmovne ebx, eax
test ecx, edi
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
mov dl, byte [esi + 0xc]
cmovge ecx, ebx
mov byte [esi + 0x1a], dl
jmp 0x4712a0
cmp ecx, 0x342c3a6b
je 0x4722ba
cmp ecx, 0x3eaa66ea
je 0x4722e9
cmp ecx, 0x414d09fc
jne 0x4712a0
mov ecx, dword [esi + 0x10]
push 0x517cd0
call fcn.00473740
mov ecx, 0x2c152926
jmp 0x4712a0
cmp ecx, 0xdc143260
je 0x4722ff
cmp ecx, 0xde65160b
je 0x472315
cmp ecx, 0xe05ae702
jne 0x4712a0
push 0x6af40
call fcn.0049d69d
add esp, 4
mov dword [esi + 0x58], eax
push 0x6af40
push 0
push dword [esi + 0x58]
call fcn.004bc0d0
add esp, 0xc
call fcn.004d14e2
mov ecx, eax
sar ecx, 0x1f
push 0
push 0x44
push ecx
push eax
call fcn.0049d980
add eax, 0x36
adc edx, 0
push edx
push eax
call fcn.00476d20
add esp, 8
mov eax, dword [0x517b28]
mov edx, dword [0x517b2c]
mov edi, 0x342c3a6b
mov byte [esi + 0x1c], 1
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0x9ea4a699
cmovne edi, ebx
test eax, ecx
mov ecx, edi
cmove ecx, ebx
cmp edx, 0xa
cmovge ecx, edi
jmp 0x4712a0
cmp byte [esi + 0x1b], 0
mov ecx, 0x76a762ec
mov eax, 0xd63cc571
cmovne ecx, eax
jmp 0x4712a0
mov eax, dword [esi + 0x68]
mov eax, dword [esi + 0x40]
mov edi, esp
push eax
sub esp, 0x18
mov eax, dword [ebp + 0xc]
mov ebx, esp
lea ecx, [ebx + 4]
push dword [eax]
call fcn.00401020
mov eax, dword [esi + 0x40]
mov dword [ebx], eax
call fcn.004738f0
add esp, 0x1c
mov esp, edi
mov eax, dword [esi + 0x40]
mov dword [esi + 0xc], eax
mov dword [esi + 8], eax
mov eax, 0x39b55497
nop
cmp eax, 0xd6f5e2ac
jg 0x471bf0
cmp eax, 0x95167163
je 0x471c24
cmp eax, 0xa30b2984
je 0x471c63
cmp eax, 0xd4656a01
jne 0x471bc0
mov eax, 0x95167163
jmp 0x471bc0
cmp eax, 0xd6f5e2ad
je 0x4723ef
cmp eax, 0x61b87218
je 0x471ca5
cmp eax, 0x39b55497
jne 0x471bc0
mov eax, dword [esi + 8]
mov ecx, 0xa30b2984
cmp eax, 0x517ce8
mov eax, 0x61b87218
cmove eax, ecx
jmp 0x471bc0
mov eax, dword [0x517b68]
mov ebx, 0xd6f5e2ad
mov edi, 0xd4656a01
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0xd4656a01
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmove eax, ebx
cmp dword [0x517b6c], 0xa
setl dl
cmovge eax, edi
xor dl, cl
cmovne eax, ebx
jmp 0x471bc0
mov eax, dword [0x517b68]
mov ecx, dword [0x517b6c]
mov edi, 0x95167163
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0xd4656a01
cmovne ebx, edi
test eax, edx
mov eax, ebx
cmove eax, edi
cmp ecx, 0xa
cmovge eax, ebx
jmp 0x471bc0
sub esp, 8
movzx eax, byte [esi + 4]
mov ecx, 0x517ce8
mov byte [esp + 4], al
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call fcn.00491710
mov eax, 0xa30b2984
jmp 0x471bc0
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
push ebx
call fcn.004d1ad0
add esp, 4
mov ecx, 0x517cd0
push eax
push ebx
call fcn.00401830
mov eax, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov ecx, 0x517cd0
push dword [esi + 0x24]
call fcn.00473000
mov eax, dword [0x517aa8]
mov ebx, dword [0x517aac]
mov edi, 0xe868cde0
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
cmp ebx, 0xa
setl dh
xor dh, dl
mov edx, 0xdf5c415b
cmovne edx, edi
test eax, ecx
mov eax, dword [esi + 0x20]
mov edi, edx
mov dword [esi + 0xc], eax
mov eax, 0xe868cde0
mov ecx, dword [esi + 0x24]
sete byte [esi + 4]
cmove edi, eax
cmp ebx, 0xa
mov ebx, 0x4267149e
cmovge edi, edx
setl byte [esi + 8]
nop
cmp ebx, 0xe868cddf
jg 0x471d80
cmp ebx, 0xdac32c23
je 0x471dcb
cmp ebx, 0xdf5c415b
jne 0x471d50
mov edx, dword [ecx]
mov eax, dword [esi + 0xc]
mov ebx, 0xdac32c23
add edx, 0xfffffffc
mov dword [eax], edx
jmp 0x471d50
cmp ebx, 0xe868cde0
je 0x47249f
cmp ebx, 0x4267149e
jne 0x471d50
movzx edx, byte [esi + 4]
movzx ebx, byte [esi + 8]
mov eax, 0xdac32c23
mov dword [esi + 0x38], ecx
mov ecx, 0xdac32c23
mov dh, bl
xor dh, dl
test bl, bl
mov ebx, 0xdf5c415b
cmovne ebx, eax
test dl, dl
mov eax, 0xdf5c415b
cmove ebx, eax
test dh, dh
cmovne ebx, ecx
mov ecx, dword [esi + 0x38]
jmp 0x471d50
mov edx, dword [ecx]
mov eax, dword [esi + 0xc]
mov ebx, edi
add edx, 0xfffffffc
mov dword [eax], edx
jmp 0x471d50
mov eax, dword [esi + 0x2c]
mov ecx, 0x5d8bdf5c
jmp 0x4712a0
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x64]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
cmp ecx, 0x6af40
mov ecx, 0x99594189
sbb eax, 0
mov eax, 0x4bcd3dd4
cmovb ecx, eax
jmp 0x4712a0
mov ecx, 0x517ce8
push 9
push str.putty.exe
jmp 0x4722a8
mov eax, dword [0x517b28]
mov edx, dword [0x517b2c]
mov edi, 0x342c3a6b
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0xe05ae702
jmp 0x47128d
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
add eax, 0x20
movzx edx, byte [eax + 0x405f84]
adc ecx, 0
push ecx
push eax
push edx
call fcn.00477680
add esp, 0xc
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x34]
mov edx, dword [esi + 0x58]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
add eax, 1
adc ecx, 0
mov dword [esi + 0x64], eax
mov dword [esi + 0x5c], ecx
mov ecx, 0xfa52de4d
jmp 0x4712a0
mov ecx, dword [esi + 0x10]
call fcn.004011f0
mov eax, dword [0x517d2c]
mov edx, dword [0x517d30]
mov edi, 0x1c08b87
mov ebx, 0xe9e3b4d0
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0xe9e3b4d0
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
sete byte [esi + 4]
cmove eax, edi
cmp edx, 0xa
setl dl
setl byte [esi + 8]
cmovge eax, ebx
xor dl, cl
mov ecx, 0xe4f57ea6
cmovne eax, edi
cmp ecx, 0x1c08b86
jg 0x471f10
cmp ecx, 0xe4f57ea6
je 0x471f28
cmp ecx, 0xe9e3b4d0
jne 0x471ef0
mov ecx, 0x2b2d5b0d
jmp 0x471ef0
cmp ecx, 0x1c08b87
je 0x472526
cmp ecx, 0x2b2d5b0d
jne 0x471ef0
mov ecx, eax
jmp 0x471ef0
movzx edx, byte [esi + 4]
movzx ecx, byte [esi + 8]
mov edi, 0xe9e3b4d0
mov ebx, 0x2b2d5b0d
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x471ef0
mov ecx, 0xed7ff2a
jmp 0x4712a0
mov eax, dword [0x517b28]
mov edi, 0x3eaa66ea
mov ebx, 0x906b08b9
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, 0x906b08b9
jmp 0x4720be
mov eax, dword [ebp + 0xc]
mov edi, dword [eax]
push edi
call fcn.004d1ad0
add esp, 4
mov ecx, 0x517cd0
push eax
push edi
call fcn.00401830
mov eax, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov ecx, 0x517cd0
push dword [esi + 0x24]
call fcn.00473000
mov eax, dword [esi + 0x20]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x24]
mov edx, dword [0x517aa8]
lea edi, [edx - 1]
mov dword [esi + 0xc], eax
mov eax, 0xe868cde0
imul edi, edx
mov edx, edi
xor edx, 0xfffffffe
test edx, edi
mov edi, dword [0x517aac]
mov edx, 0xdf5c415b
sete byte [esi + 4]
cmove edx, eax
sete bl
cmp edi, 0xa
mov edi, 0xdf5c415b
setl bh
setl byte [esi + 8]
cmovge edx, edi
xor bh, bl
mov ebx, 0x4267149e
cmovne edx, eax
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ebx, 0xe868cddf
jg 0x472040
cmp ebx, 0xdac32c23
je 0x47207f
cmp ebx, 0xdf5c415b
jne 0x472010
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x38]
mov ebx, 0xdac32c23
mov eax, dword [eax]
add eax, 0xfffffffc
mov dword [ecx], eax
jmp 0x472010
cmp ebx, 0xe868cde0
je 0x47253c
cmp ebx, 0x4267149e
jne 0x472010
movzx ecx, byte [esi + 4]
mov ah, byte [esi + 8]
mov edi, 0xdf5c415b
mov ebx, ecx
xor bl, ah
mov ebx, 0xdac32c23
cmovne edi, ebx
test ah, ah
mov eax, 0xdac32c23
mov ebx, edi
cmovne ebx, eax
test cl, cl
cmove ebx, edi
jmp 0x472010
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x38]
mov ebx, edx
mov eax, dword [eax]
add eax, 0xfffffffc
mov dword [ecx], eax
jmp 0x472010
mov ecx, dword [esi + 0x10]
push 0x517cd0
call fcn.00473740
mov eax, dword [0x517b28]
mov edi, 0x94b79447
mov ebx, 0x414d09fc
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, 0x414d09fc
sete al
cmove ecx, edi
cmp dword [0x517b2c], 0xa
setl dl
cmovge ecx, ebx
xor dl, al
cmovne ecx, edi
jmp 0x4712a0
cmp byte [esi + 0x19], 0
mov ecx, 0x5ab17797
mov eax, 0x4e6bc4e9
cmovne ecx, eax
jmp 0x4712a0
mov edi, esp
push eax
sub esp, 0x2c
mov ebx, esp
lea ecx, [ebx + 0x18]
push 0x517ce8
call fcn.00473740
mov ecx, ebx
push 0x517cd0
call fcn.00473740
call fcn.004759b0
add esp, 0x30
mov ecx, 0x76a762ec
mov esp, edi
jmp 0x4712a0
cmp byte [esi + 0x18], 0
mov ecx, 0xbb2517b7
mov eax, 0x8b274285
cmovne ecx, eax
jmp 0x4712a0
mov eax, dword [0x517b28]
mov edx, dword [0x517b2c]
mov edi, 0xfc6741c7
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0x7b3e653b
jmp 0x47128d
mov eax, dword [0x517b28]
mov ebx, 0x8595fdaf
mov edi, 0x25b33ce1
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, 0x25b33ce1
sete al
cmove ecx, ebx
cmp dword [0x517b2c], 0xa
setl dl
cmovge ecx, edi
xor dl, al
cmovne ecx, ebx
jmp 0x4712a0
mov ecx, 0x9a97a7de
jmp 0x4712a0
mov ecx, 0x517ce8
push dword [esi + 0x74]
call fcn.00474660
mov ecx, 0x517cd0
call fcn.00474ae0
push eax
mov eax, dword [ebp + 0xc]
push dword [eax]
call fcn.004748a0
add esp, 8
mov ecx, 0xaff13a33
jmp 0x4712a0
push 3
push 4
push dword [esi + 0x58]
call fcn.00402e50
add esp, 0xc
mov ecx, 0x76a762ec
jmp 0x4712a0
cmp byte [esi + 0x1a], 0
mov ecx, 0x76a762ec
mov eax, 0xde65160b
cmovne ecx, eax
jmp 0x4712a0
mov al, byte [esi + 0x16]
mov cl, byte [esi + 0x17]
mov edi, 0x3354267d
mov edx, eax
xor dl, cl
mov edx, 0x8add58e8
cmovne edx, edi
test cl, cl
mov ecx, edx
cmovne ecx, edi
test al, al
cmove ecx, edx
jmp 0x4712a0
mov ecx, 0x6b8d1e83
jmp 0x4712a0
cmp byte [esi + 0x1e], 0
mov ecx, 0xdc143260
mov eax, 0x5e10e079
cmovne ecx, eax
jmp 0x4712a0
mov ecx, 0xdc143260
jmp 0x4712a0
call fcn.004d14e2
mov ecx, eax
sar ecx, 0x1f
push 0
push 0x34
push ecx
push eax
call fcn.0049d980
add eax, 0x38
adc edx, 0
push edx
push eax
call fcn.00477060
add esp, 8
mov ecx, 0xbb5a172a
jmp 0x4712a0
mov edi, dword [esi + 0x70]
push edi
call fcn.004d1ad0
add esp, 4
mov ecx, 0x517ce8
push eax
push edi
call fcn.0048d5c0
mov dword [esi + 0x60], eax
mov ecx, 0xd66c4af4
jmp 0x4712a0
call fcn.004d14e2
mov ecx, eax
sar ecx, 0x1f
push 0
push 0x44
push ecx
push eax
call fcn.0049d980
add eax, 0x36
adc edx, 0
push edx
push eax
call fcn.00476d20
add esp, 8
mov ecx, 0xe05ae702
jmp 0x4712a0
cmp byte [esi + 0x1f], 0
mov ecx, 0x5d8bdf5c
mov eax, 0xf663193e
cmovne ecx, eax
jmp 0x4712a0
cmp byte [esi + 0x1d], 0
mov ecx, 0x8520dcc9
mov eax, 0x16775f8e
cmovne ecx, eax
jmp 0x4712a0
mov eax, dword [esi + 0x44]
push 0
push dword [esi + 0x44]
call fcn.004729c0
add esp, 8
mov ecx, dword [esi + 0x44]
push 0x50d8a0
call fcn.00491cf0
mov byte [esi + 0xc], al
mov ecx, dword [esi + 0x44]
call fcn.004011f0
mov eax, dword [0x517d2c]
mov edx, dword [0x517d30]
mov edi, 0x1c08b87
mov ebx, 0xe9e3b4d0
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0xe9e3b4d0
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
sete byte [esi + 4]
cmove eax, edi
cmp edx, 0xa
setl dl
setl byte [esi + 8]
cmovge eax, ebx
xor dl, cl
mov ecx, 0xe4f57ea6
cmovne eax, edi
nop word cs:[eax + eax]
cmp ecx, 0x1c08b86
jg 0x4723b0
cmp ecx, 0xe4f57ea6
je 0x4723c8
cmp ecx, 0xe9e3b4d0
jne 0x472390
mov ecx, 0x2b2d5b0d
jmp 0x472390
cmp ecx, 0x1c08b87
je 0x472562
cmp ecx, 0x2b2d5b0d
jne 0x472390
mov ecx, eax
jmp 0x472390
movzx edx, byte [esi + 4]
movzx ecx, byte [esi + 8]
mov edi, 0xe9e3b4d0
mov ebx, 0x2b2d5b0d
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x472390
mov ecx, dword [esi + 0x40]
call fcn.004011f0
mov eax, dword [0x517d2c]
mov edx, dword [0x517d30]
mov edi, 0x1c08b87
mov ebx, 0xe9e3b4d0
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0xe9e3b4d0
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
sete byte [esi + 4]
cmove eax, edi
cmp edx, 0xa
setl dl
setl byte [esi + 8]
cmovge eax, ebx
xor dl, cl
mov ecx, 0xe4f57ea6
cmovne eax, edi
cmp ecx, 0x1c08b86
jg 0x472460
cmp ecx, 0xe4f57ea6
je 0x472478
cmp ecx, 0xe9e3b4d0
jne 0x472440
mov ecx, 0x2b2d5b0d
jmp 0x472440
cmp ecx, 0x1c08b87
je 0x472578
cmp ecx, 0x2b2d5b0d
jne 0x472440
mov ecx, eax
jmp 0x472440
movzx edx, byte [esi + 4]
movzx ecx, byte [esi + 8]
mov edi, 0xe9e3b4d0
mov ebx, 0x2b2d5b0d
mov ch, dl
xor ch, cl
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x472440
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x3c]
mov ecx, 0x517cd0
push 0x58
push 1
push dword [eax]
push dword [esi + 0x3c]
call fcn.00472de0
mov eax, dword [0x517b28]
mov edx, dword [0x517b2c]
mov edi, 0xcda90eaf
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp edx, 0xa
setl ah
xor ah, al
mov eax, 0x25b33ce1
cmovne eax, edi
cmp ecx, 0xffffffff
mov ecx, eax
cmove ecx, edi
cmp edx, 0xa
cmovge ecx, eax
mov eax, dword [esi + 0x10]
cmp dword [ebp + 8], 2
mov dword [esi + 0x68], eax
setl dl
mov eax, dword [esi + 0x68]
mov eax, dword [esi + 0x78]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x6c]
cmp dword [eax], 0
mov ah, dl
sete al
and ah, al
xor dl, al
or dl, ah
mov byte [esi + 0x19], dl
jmp 0x4712a0
test byte [esi + 0x50], 1
mov ecx, 0x6b8d1e83
mov eax, 0xc7ec43cb
cmovne ecx, eax
jmp 0x4712a0
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x3c]
mov ecx, 0x517cd0
push 0x58
push 1
push dword [eax]
push dword [esi + 0x3c]
call fcn.00472de0
mov eax, dword [esi + 0x10]
mov ecx, 0x8595fdaf
jmp 0x4712a0
cmp byte [esi + 0xc], 0
mov ecx, 0x68f4490e
mov eax, 0x76a762ec
cmovne ecx, eax
jmp 0x4712a0
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov ecx, dword [ecx + 8]
cmp edi, 3
setl al
mov dword [esi + 0x70], ecx
mov ecx, dword [esi + 0x70]
test ecx, ecx
sete dl
xor dl, al
mov eax, 0xa9772e29
mov edx, 0xb7d45934
cmovne eax, edx
test ecx, ecx
mov ecx, eax
cmove ecx, edx
cmp edi, 3
cmovge ecx, eax
jmp 0x4712a0
mov eax, dword [esi + 0x28]
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0x28]
push dword [eax]
call fcn.00401020
mov eax, dword [esi + 0x2c]
mov edi, esp
sub esp, 0x1c
mov eax, dword [ebp + 0xc]
mov ebx, esp
lea ecx, [ebx + 4]
push dword [eax]
call fcn.00401020
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
call fcn.004738f0
add esp, 0x1c
mov esp, edi
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
sub esp, 0xc
mov bl, byte [esi + 8]
mov byte [esp], bl
mov dword [esp + 8], eax
mov dword [esp + 4], edx
call fcn.00490840
mov al, 1
mov ecx, 0x57921a34
mov dword [esi + 0x54], eax
mov al, 1
mov dword [esi + 0x50], eax
mov al, 1
mov dword [esi + 0x4c], eax
mov al, 1
jmp 0x47125b
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret