Function at 0x412f22
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf0
mov ecx, dword [0x441be4]
mov dword [esp + 0xd0], 0x93d7fbb8
mov dword [esp + 0xd4], 0
mov byte [esp + 0xd8], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 8
ja 0x40ef97
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
movzx edx, byte [esp + edx + 0xd0]
lea esi, [eax - 0x62b9ebed]
add eax, 0x13
and eax, edx
or esi, edx
sub esi, eax
mov dword [esp + 0x2e0], esi
mov eax, dword [esp + 0x2e0]
add al, 0x7b
mov edx, dword [esp + 0x28]
mov byte [esp + edx + 0xd0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 9
jb 0x40ef50
mov edx, dword [str.WpM2Co__PRIVEIT]
mov dword [esp + 0x2e0], 0xde263a39
mov dword [esp + 0x2e4], 0x4e454856
mov dword [esp + 0x2e8], 0x56454c5e
mov dword [esp + 0x2ec], 0x4e5d5e41
mov dword [esp + 0x2f0], 0x55844447
mov dword [esp + 0x2f4], 0x8bb34759
mov dword [esp + 0x2f8], 0x479c8186
mov dword [esp + 0x2fc], 0xffbb5155
mov dword [esp + 0x300], 0
mov dword [esp + 0x303], 0
mov dword [esp + 0x260], 0
mov eax, dword [esp + 0x260]
cmp eax, 0x26
ja 0x40f09c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x260]
mov eax, dword [esp + 0x260]
movzx edi, byte [esp + eax + 0x2e0]
add esi, 0x8326dfbc
mov eax, esi
and eax, edi
xor esi, edi
lea esi, [esi + eax*2]
add eax, eax
mov edi, esi
not edi
and edi, eax
not eax
and eax, esi
sub eax, edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov esi, eax
xor esi, 0xdb
and eax, 0x5b
lea eax, [esi + eax*2]
inc al
mov esi, dword [esp + 0x260]
mov byte [esp + esi + 0x2e0], al
inc dword [esp + 0x260]
mov eax, dword [esp + 0x260]
cmp eax, 0x27
jb 0x40f030
movzx ebx, byte [esp + 0x2e0]
lea eax, [esp + 0x260]
test bl, bl
je 0x40f0cb
lea esi, [esp + 0x2e1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40f0c0
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40f0eb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40f0e0
mov byte [eax], 0
movzx edx, byte [esp + 0xd0]
test dl, dl
je 0x40f11b
lea esi, [esp + 0xd1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40f110
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f13b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40f130
mov byte [eax], 0
lea ecx, [esp + 0x260]
mov dword [esp + 0x2e0], 0x3b8939f3
mov dword [esp + 0x2e4], 0x3f883d94
mov dword [esp + 0x2e8], 0x3ae0199
mov dword [esp + 0x2ec], 0x7eb05b6
mov dword [esp + 0x2f0], 0xbb309d2
mov dword [esp + 0x2f4], 0xfab0dba
mov dword [esp + 0x2f8], 0x13f011f4
mov dword [esp + 0x2fc], 0x17a415b1
mov dword [esp + 0x300], 0x1bb419a6
mov dword [esp + 0x304], 0x1fb91db1
mov dword [esp + 0x308], 0xe354e1bd
mov dword [esp + 0x30c], 0xe755e549
mov dword [esp + 0x310], 0xeb19e948
mov dword [esp + 0x314], 0xef03ed52
mov dword [esp + 0x318], 0xf349f157
mov dword [esp + 0x31c], 0xf71bf54b
mov dword [esp + 0x320], 0xfb49f950
mov dword [esp + 0x324], 0xff53fd48
mov dword [esp + 0x328], 0xc377c111
mov dword [esp + 0x32c], 0xc768c570
mov dword [esp + 0x330], 0xcb66c961
mov dword [esp + 0x334], 0xcf7dcd6f
mov dword [esp + 0x338], 0xd377d16a
mov dword [esp + 0x33c], 0xd7dbd576
mov dword [esp + 0x340], 0xdbd8d9dc
mov dword [esp + 0x34b], 0
mov dword [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x28]
cmp edx, 0x6e
ja 0x40f2dd
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [edx + 0x57]
and edi, esi
mov ebx, 0xe5309aa8
sub ebx, edx
or ebx, esi
not ebx
add ebx, esi
sub ebx, edi
mov dword [esp + 0xd0], ebx
mov edx, dword [esp + 0xd0]
add dl, 0x9f
mov esi, dword [esp + 0x28]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x28]
mov edx, dword [esp + 0x28]
cmp edx, 0x6f
jb 0x40f290
sub eax, ecx
mov dword [esp + 0xd0], 0xf393cd9f
mov dword [esp + 0xd4], 0xf79ff160
mov word [esp + 0xd8], 0xf5f4
mov dword [esp + 0xde], 0
mov dword [esp + 0xda], 0
mov dword [esp + 0x1f8], 0
mov edx, dword [esp + 0x1f8]
cmp edx, 0x11
ja 0x40f38d
nop
nop
nop
nop
mov edx, dword [esp + 0x1f8]
mov esi, dword [esp + 0x1f8]
movzx esi, byte [esp + esi + 0xd0]
mov edi, edx
and edi, 0xe25105de
xor edx, 0xe25105de
lea edx, [edx + edi*2]
mov edi, edx
and edi, esi
add edx, esi
add edi, edi
sub edx, edi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x28]
add dl, 0xee
mov esi, dword [esp + 0x1f8]
mov byte [esp + esi + 0xd0], dl
inc dword [esp + 0x1f8]
mov edx, dword [esp + 0x1f8]
cmp edx, 0x12
jb 0x40f330
lea edx, [esp + 0xcc]
lea esi, [esp + 0xc4]
lea ebx, [esp + 0x2e0]
lea edi, [esp + 0xd0]
push edx
push esi
push eax
push ecx
push ebx
push edi
push 0x447554
call fcn.0040c6c0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4427f4]
xor esi, esi
xor ebx, ebx
test esi, esi
sete bl
jmp dword [ebx*4 + 0x4427fc]
mov ecx, dword [case.0x40f45f.5]
xor eax, eax
nop
nop
jmp ecx
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc4]
lea eax, [ecx + ecx*2]
shr eax, 2
cmp byte [ecx + ebx - 1], 0x3d
je 0x40f41d
mov edx, ecx
xor edx, 0xfffffffe
mov esi, ecx
and esi, 0xfffffffe
lea edx, [edx + esi*2]
cmp byte [ebx + edx + 1], 0x2e
jne 0x40f41e
dec eax
movzx ecx, byte [ecx + ebx - 2]
cmp ecx, 0x3d
je 0x40f42d
cmp ecx, 0x2e
jne 0x40f434
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
push eax
call fcn.004090e0
add esp, 4
mov esi, eax
push eax
push ebx
call fcn.00434370
add esp, 8
push dword [esp + 0xc4]
call fcn.00437dc0
add esp, 4
xor ebx, ebx
test esi, esi
sete bl
jmp dword [ebx*4 + 0x4427fc]
push esi
call fcn.00401ee0
add esp, 4
jmp dword [ebx*4 + 0x442814]
push esi
mov esi, eax
call fcn.004090f0
mov eax, esi
add esp, 4
mov dword [esp + 0xbc], eax
push eax
call fcn.00402990
add esp, 4
mov esi, eax
mov word [esp + 0x2e0], 0x8c86
mov byte [esp + 0x2e2], 0x32
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov byte [esp + 0x2eb], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xb
lea ebx, [esp + 0x2e0]
ja 0x40f529
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0x540e89d8]
add eax, 0xd8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x18
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xc
jb 0x40f4e0
push ebx
push esi
call fcn.00402af0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x44281c]
xor eax, eax
movzx eax, al
jmp dword [eax*4 + 0x442824]
mov esi, dword [esp + 0xbc]
jmp dword [0x442830]
push esi
call fcn.00402f60
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00402f60
add esp, 4
xor eax, eax
jmp dword [0x442834]
mov dword [esp + 0x2e0], 0x8b444546
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 7
ja 0x40f5ef
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
add eax, 0x8f40ec35
xor eax, ecx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0x8d
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 8
jb 0x40f5b0
push dword [esp + 0x2e0]
call fcn.00433150
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x442824]
mov dword [esp + 0xb0], esi
mov word [esp + 0x2e0], 0xc9c9
mov byte [esp + 0x2e2], 0x64
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov word [esp + 0x2eb], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xc
ja 0x40f6c0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax - 0x3fd84bef]
lea esi, [eax + 0x11]
or edx, esi
and edx, ecx
and esi, ecx
add esi, edx
add eax, ecx
add eax, 0xc027b411
sub eax, esi
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
mov ecx, eax
xor ecx, 0x88
and eax, 8
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xd
jb 0x40f660
push ebx
push dword [esp + 0xb4]
call fcn.00402af0
add esp, 8
mov dword [esp + 0xb8], eax
mov word [esp + 0x2e0], 0x1e03
mov byte [esp + 0x2e2], 0xb8
mov dword [esp + 0x2e3], 0
mov byte [esp + 0x2e7], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 7
ja 0x40f762
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx edx, byte [esp + ecx + 0x2e0]
lea ecx, [eax + 0x27374797]
mov esi, ecx
and esi, edx
xor ecx, edx
add eax, 0x97
and eax, edx
add eax, esi
sub ecx, eax
lea eax, [ecx + esi*2]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0xdf
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 8
jb 0x40f710
push ebx
mov esi, dword [esp + 0xb4]
push esi
call fcn.00402af0
add esp, 8
xor ebx, ebx
test eax, eax
setg bl
push esi
call fcn.004108a0
add esp, 4
push dword [esp + 0xbc]
call fcn.00402f60
add esp, 4
lea esi, [esp + 0x1f8]
mov ecx, esi
push 1
call fcn.004097f0
push esi
call fcn.0041ebc0
add esp, 4
mov ecx, esi
call fcn.0040a150
lea esi, [esp + 0xc80]
mov ecx, esi
push 3
call fcn.004097f0
push esi
call fcn.0041f3d0
add esp, 4
mov ecx, esi
call fcn.0040a150
lea esi, [esp + 0xc18]
mov ecx, esi
push 1
call fcn.004097f0
push esi
call fcn.0041f710
add esp, 4
mov ecx, esi
call fcn.0040a150
lea esi, [esp + 0xbb0]
mov ecx, esi
push 1
call fcn.004097f0
push esi
call fcn.00421700
add esp, 4
push esi
call fcn.00422020
add esp, 4
push esi
call fcn.004224c0
add esp, 4
mov ecx, esi
call fcn.0040a150
lea esi, [esp + 0xb48]
mov ecx, esi
push 1
call fcn.004097f0
push esi
call fcn.00424360
add esp, 4
mov ecx, esi
call fcn.0040a150
lea esi, [esp + 0xae0]
mov ecx, esi
push 1
call fcn.004097f0
push esi
call fcn.004261d0
add esp, 4
push esi
call fcn.0042dd50
add esp, 4
jmp dword [ebx*4 + 0x44283c]
push esi
call fcn.0042df30
add esp, 4
lea ecx, [esp + 0xae0]
call fcn.0040a150
lea eax, [esp + 0x1d7]
push eax
call fcn.00433db0
add esp, 4
mov dword [esp + 0x28], 0xe2d5e126
mov word [esp + 0x2c], 0x10e8
mov byte [esp + 0x2e], 0x56
mov dword [esp + 0x2f], 0
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0xd0]
cmp eax, 0xa
ja 0x40f92a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax - 0x78e6c28c]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x87193d73
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x2e0]
add al, 0xd4
mov ecx, dword [esp + 0xd0]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0xd0]
mov eax, dword [esp + 0xd0]
cmp eax, 0xb
jb 0x40f8d0
mov eax, dword [0x441be4]
mov dword [esp + 0x18], 0x3b07d310
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0xd0], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 0xf
ja 0x40f9c4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
movzx edx, byte [esp + edx + 0x18]
lea esi, [ecx + 0x6b3748f7]
add ecx, 0xf7
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0x2e0], esi
mov ecx, dword [esp + 0x2e0]
add cl, 0x3f
mov edx, dword [esp + 0xd0]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
cmp ecx, 0x10
jb 0x40f970
mov ecx, dword [str.WpM2Co__PRIVEIT]
mov dword [esp + 0x2e0], 0x80786869
mov dword [esp + 0x2e4], 0x6e7c6a6b
mov dword [esp + 0x2e8], 0x7671667d
mov dword [esp + 0x2ec], 0xbd636065
mov dword [esp + 0x2f0], 0x906a7e6c
mov dword [esp + 0x2f4], 0xb5a0a3ae
mov dword [esp + 0x2f8], 0x98706a6a
mov byte [esp + 0x2fc], 0xda
mov dword [esp + 0x301], 0
mov dword [esp + 0x2fd], 0
mov dword [esp + 8], 0
mov edx, dword [esp + 8]
cmp edx, 0x24
ja 0x40faad
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 8]
mov esi, dword [esp + 8]
movzx esi, byte [esp + esi + 0x2e0]
mov ebx, edx
and ebx, 0x394478e1
xor edx, 0xb94478e1
lea edx, [edx + ebx*2]
lea ebx, [edx + esi]
and edx, esi
add edx, edx
mov esi, edx
xor esi, ebx
not edx
and edx, ebx
add edx, edx
sub edx, esi
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0xd0]
add dl, 0xd9
mov esi, dword [esp + 8]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 8]
mov edx, dword [esp + 8]
cmp edx, 0x25
jb 0x40fa50
movzx edx, byte [esp + 0x2e0]
test dl, dl
je 0x40fadb
lea edi, [esp + 0xd0]
lea esi, [esp + 0x2e1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40fad0
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40fafd
inc ecx
lea ebx, [esp + 0x2e0]
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40faf0
jmp 0x40fb04
lea ebx, [esp + 0x2e0]
mov byte [edi], 0
movzx ecx, byte [esp + 0x18]
test cl, cl
je 0x40fb2b
lea edx, [esp + 0x19]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40fb20
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40fb4b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40fb40
mov byte [edi], 0
movzx eax, byte [esp + 0x28]
test al, al
je 0x40fb6b
lea ecx, [esp + 0x29]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40fb60
mov byte [edi], 0
movzx eax, byte [esp + 0x1d7]
test al, al
je 0x40fb9b
lea ecx, [esp + 0x1d8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40fb90
mov byte [edi], 0
lea eax, [esp + 0xd0]
mov dword [esp + 0x2e0], 0xb851553
mov dword [esp + 0x2e4], 0xf9c0998
mov dword [esp + 0x2e8], 0x39e0d95
mov dword [esp + 0x2ec], 0x7530196
mov dword [esp + 0x2f0], 0x7b8b05b2
mov dword [esp + 0x2f4], 0x7fe379ea
mov dword [esp + 0x2f8], 0x731c7d30
mov dword [esp + 0x2fc], 0x77e071d5
mov dword [esp + 0x300], 0x6be875e6
mov dword [esp + 0x304], 0x6fcd69f5
mov dword [esp + 0x308], 0x63f86dc9
mov dword [esp + 0x30c], 0x67f161fd
mov dword [esp + 0x310], 0x5b3565f4
mov dword [esp + 0x314], 0x5f0b59d2
mov dword [esp + 0x318], 0x53d55dd7
mov dword [esp + 0x31c], 0x570351db
mov dword [esp + 0x320], 0x4bc555cc
mov dword [esp + 0x324], 0x4fdb49dc
mov dword [esp + 0x328], 0x43c74d1d
mov dword [esp + 0x32c], 0x47dc41d4
mov dword [esp + 0x330], 0xbbd645dd
mov dword [esp + 0x334], 0xbf29b91f
mov dword [esp + 0x338], 0xb327bd1a
mov dword [esp + 0x33c], 0xb7c3b116
mov dword [esp + 0x340], 0xabb4b5c8
mov dword [esp + 0x344], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x67
ja 0x40fd27
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0x2e0]
lea esi, [ecx + 0xad]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0xfefd3dad
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
add cl, 0x45
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x2e0], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x68
jb 0x40fce0
sub edi, eax
mov dword [esp + 0x28], 0x43e34d9f
mov dword [esp + 0x2c], 0x47df41d0
mov word [esp + 0x30], 0x4544
mov dword [esp + 0x32], 0
mov dword [esp + 0x35], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x10
ja 0x40fdb1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0xb6]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0xdbcee5b6
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
add cl, 6
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x11
jb 0x40fd70
lea ecx, [esp + 0xc8]
lea edx, [esp + 0xc0]
lea esi, [esp + 0x28]
push ecx
push edx
push edi
push eax
push ebx
push esi
push 0x447554
call fcn.0040c6c0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x442844]
xor ebx, ebx
xor eax, eax
test ebx, ebx
setne al
mov edi, dword [esp + 0xb8]
jmp dword [eax*4 + 0x44284c]
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0xc0]
lea eax, [ecx + ecx*2]
shr eax, 2
cmp byte [ecx + esi - 1], 0x3d
je 0x40fe26
mov edx, ecx
xor edx, 0xfffffffe
mov edi, ecx
and edi, 0xfffffffe
lea edx, [edx + edi*2]
cmp byte [esi + edx + 1], 0x2e
jne 0x40fe27
dec eax
movzx ecx, byte [ecx + esi - 2]
cmp ecx, 0x3d
mov edi, dword [esp + 0xb8]
je 0x40fe3d
cmp ecx, 0x2e
jne 0x40fe44
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
push eax
call fcn.004090e0
add esp, 4
mov ebx, eax
push eax
push esi
call fcn.00434370
add esp, 8
push dword [esp + 0xc0]
call fcn.00437dc0
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x44284c]
push ebx
call fcn.00401ee0
add esp, 4
mov esi, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x442854]
push ebx
call fcn.004090f0
add esp, 4
push esi
call fcn.00414140
add esp, 4
push esi
call fcn.00402f60
add esp, 4
mov dword [esp + 0x2e0], 0xbb111b12
mov dword [esp + 0x2e4], 0
mov word [esp + 0x2e8], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 9
ja 0x40ff21
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0x2bcdbe17]
add eax, 0x17
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
add al, 0x5f
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xa
jb 0x40fee0
lea eax, [esp + 0x2e0]
push eax
push dword [esp + 0xb4]
call fcn.00402af0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x44285c]
jmp dword [0x442868]
jmp dword [0x4428b0]
jmp dword [0x442888]
mov dword [esp + 0x28], 0x1baf19bb
mov dword [esp + 0x2c], 0xe710e548
mov dword [esp + 0x30], 0xe35ae14d
mov dword [esp + 0x34], 0xef0eed41
mov dword [esp + 0x38], 0xeb59e90a
mov dword [esp + 0x3c], 0xf757f548
mov dword [esp + 0x40], 0xf34ef142
mov dword [esp + 0x44], 0xff09fd1c
mov dword [esp + 0x48], 0xfb53f94d
mov dword [esp + 0x4c], 0xc726c572
mov dword [esp + 0x50], 0xc377c163
mov dword [esp + 0x54], 0xcf38cd60
mov dword [esp + 0x58], 0xcb72c965
mov dword [esp + 0x5c], 0xd736d579
mov dword [esp + 0x60], 0xd325d132
mov dword [esp + 0x64], 0xdf3edd7f
mov dword [esp + 0x68], 0xdb73d964
mov dword [esp + 0x6c], 0xa70ba511
mov dword [esp + 0x70], 0xa31fa117
mov dword [esp + 0x74], 0xaf4ead10
mov dword [esp + 0x78], 0xab16a95f
mov dword [esp + 0x7c], 0xb745b554
mov dword [esp + 0x80], 0xb345b150
mov dword [esp + 0x84], 0xbf09bd0a
mov dword [esp + 0x88], 0xbb08b91a
mov dword [esp + 0x8c], 0x87278529
mov dword [esp + 0x90], 0x8362812b
mov dword [esp + 0x94], 0x8f6e8d62
mov dword [esp + 0x98], 0x8b278924
mov dword [esp + 0x9c], 0x97769520
mov dword [esp + 0xa0], 0x93929172
mov word [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x85
ja 0x4100f4
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0x186a5e7c]
mov edi, edx
not edi
or edi, esi
add edi, edx
inc edi
and esi, edx
mov ebx, edi
and ebx, esi
xor esi, edi
add ecx, edx
add ecx, 0x186a5e7c
lea edx, [esi + ebx*2]
sub ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
add cl, 0x9c
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x86
jb 0x4100a0
movzx edx, word [esp + 0x28]
lea ecx, [esp + 0x2e0]
test dx, dx
je 0x410121
lea ecx, [esp + 0x2e0]
lea esi, [esp + 0x2a]
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x410110
mov word [ecx], 0
movzx edx, word [eax]
test dx, dx
je 0x410151
lea esi, [eax + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x410140
mov dword [ecx], 0x220022
jmp dword [0x44288c]
mov dword [esp + 0x28], 0x1baf19bb
mov dword [esp + 0x2c], 0xe710e548
mov dword [esp + 0x30], 0xe35ae14d
mov dword [esp + 0x34], 0xef0eed41
mov dword [esp + 0x38], 0xeb59e90a
mov dword [esp + 0x3c], 0xf757f548
mov dword [esp + 0x40], 0xf34ef142
mov dword [esp + 0x44], 0xff09fd1c
mov dword [esp + 0x48], 0xfb53f94d
mov dword [esp + 0x4c], 0xc726c572
mov dword [esp + 0x50], 0xc377c163
mov dword [esp + 0x54], 0xcf38cd60
mov dword [esp + 0x58], 0xcb72c965
mov dword [esp + 0x5c], 0xd736d579
mov dword [esp + 0x60], 0xd325d132
mov dword [esp + 0x64], 0xdf3edd7f
mov dword [esp + 0x68], 0xdb73d964
mov dword [esp + 0x6c], 0xa70ba511
mov dword [esp + 0x70], 0xa31fa117
mov dword [esp + 0x74], 0xaf4ead10
mov dword [esp + 0x78], 0xab16a95f
mov dword [esp + 0x7c], 0xb745b554
mov dword [esp + 0x80], 0xb345b150
mov dword [esp + 0x84], 0xbf09bd0a
mov dword [esp + 0x88], 0xbb08b91a
mov dword [esp + 0x8c], 0x87278529
mov dword [esp + 0x90], 0x8362812b
mov dword [esp + 0x94], 0x8f6e8d62
mov dword [esp + 0x98], 0x8b278924
mov dword [esp + 0x9c], 0x97769520
mov dword [esp + 0xa0], 0x93929172
mov word [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x85
ja 0x410304
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0x186a5e7c]
mov edi, edx
not edi
or edi, esi
add edi, edx
inc edi
and esi, edx
mov ebx, edi
and ebx, esi
xor esi, edi
add ecx, edx
add ecx, 0x186a5e7c
lea edx, [esi + ebx*2]
sub ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
add cl, 0x9c
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x86
jb 0x4102b0
movzx edx, word [esp + 0x28]
lea ecx, [esp + 0x2e0]
test dx, dx
je 0x410331
lea ecx, [esp + 0x2e0]
lea esi, [esp + 0x2a]
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x410320
mov word [ecx], 0
movzx edx, word [eax]
test dx, dx
je 0x410361
lea esi, [eax + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x410350
mov dword [ecx], 0x220022
jmp case.0x40fe6f.15
mov dword [ecx + 4], 0x22
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0x44
mov dword [esp + 0x54], 1
jmp dword [0x442894]
mov word [esp + 0x58], 0
jmp dword [0x4428a0]
mov word [esp + 0x58], 0
mov word [esp + 0x58], 0
jmp dword [0x4428a0]
push 0xd3a7a30
push dword [0x44885c]
call fcn.0043b390
add esp, 8
lea ecx, [esp + 8]
lea edx, [esp + 0x2e0]
push ecx
lea ecx, [esp + 0x2c]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4428a4]
lea ecx, [esp + 0x2e0]
push 1
call fcn.004097f0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
cmp byte [ecx + 0x44785c], 0
lea ecx, [ecx + 1]
jne 0x410480
lea edx, [ecx + 0x44785b]
mov esi, 0x44785c
mov eax, 0x44785c
not eax
and eax, edx
lea ecx, [ecx + 0x44785c]
neg ecx
and ecx, esi
sub eax, ecx
mov dword [esp + 0x28], 0xc1a1e22
mov dword [esp + 0x2c], 0xf7084303
mov word [esp + 0x30], 0x710a
mov dword [esp + 0x32], 0
mov dword [esp + 0x36], 0
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x17
ja 0x41053f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + edx]
add ecx, 0x6f
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0xb337866f
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x18]
add cl, 0xf7
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x18
jb 0x410500
lea esi, [esp + 0x2e0]
mov ecx, esi
push eax
push 0x44785c
lea eax, [esp + 0x30]
push eax
call fcn.004099f0
mov ecx, esi
call fcn.0040a150
mov ecx, esi
call fcn.00409830
jmp dword [0x44286c]
lea ecx, [esp + 0x2e0]
push 1
call fcn.004097f0
xor ecx, ecx
nop
nop
nop
nop
cmp byte [ecx + 0x44785c], 0
lea ecx, [ecx + 1]
jne 0x410580
lea edx, [ecx + 0x44785b]
mov esi, 0x44785c
mov eax, 0x44785c
not eax
and eax, edx
lea ecx, [ecx + 0x44785c]
neg ecx
and ecx, esi
sub eax, ecx
mov dword [esp + 0x28], 0xc1a1e22
mov dword [esp + 0x2c], 0xf7084303
mov word [esp + 0x30], 0x710a
mov dword [esp + 0x32], 0
mov dword [esp + 0x36], 0
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x17
ja 0x41063f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + edx]
add ecx, 0x6f
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0xb337866f
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x18]
add cl, 0xf7
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x18
jb 0x410600
lea esi, [esp + 0x2e0]
mov ecx, esi
push eax
push 0x44785c
lea eax, [esp + 0x30]
push eax
call fcn.004099f0
mov ecx, esi
call fcn.0040a150
mov ecx, esi
call fcn.00409830
jmp case.0x40ff3f.3
xor eax, eax
test edi, edi
setg al
jmp dword [eax*4 + 0x442874]
push 0
call fcn.0043b270
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44287c]
lea ecx, [esp + 0xae0]
call fcn.00409830
lea ecx, [esp + 0xb48]
call fcn.00409830
lea ecx, [esp + 0xbb0]
call fcn.00409830
lea ecx, [esp + 0xc18]
call fcn.00409830
lea ecx, [esp + 0xc80]
call fcn.00409830
lea ecx, [esp + 0x1f8]
call fcn.00409830
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [edi + esi*8], 0x11081610
je 0x410700
inc esi
cmp ecx, esi
jne 0x4106f0
jmp case.0x40fe6f.25
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x40fe6f.25
push eax
push 1
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x10
mov eax, dword [esp + 8]
mov dword [esp + 0x18], 0xd2d1d0d7
mov dword [esp + 0x1c], 0
mov word [esp + 0x20], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 9
ja 0x4107a7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x18]
lea esi, [ecx + edx]
add esi, 0x4ae6fa3
add ecx, 0x4ae6fa3
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xb4], esi
mov ecx, dword [esp + 0xb4]
mov edx, ecx
or edx, 0x8a
and ecx, 0x8a
add ecx, edx
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xa
jb 0x410750
mov ecx, dword [0x448868]
test ecx, ecx
je 0x4107ea
mov edx, dword [esp + 0x18]
xor esi, esi
mov edi, dword [0x44886c]
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4107d0
inc esi
cmp ecx, esi
jne 0x4107c0
jmp 0x4107ea
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x4107ea
push eax
push 1
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x10
jmp dword [0x4428b8]
mov eax, dword [esp + 8]
mov dword [esp + 0x18], 0xd2d1d0d7
mov dword [esp + 0x1c], 0
mov word [esp + 0x20], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 9
ja 0x410877
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x18]
lea esi, [ecx + edx]
add esi, 0x4ae6fa3
add ecx, 0x4ae6fa3
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xb4], esi
mov ecx, dword [esp + 0xb4]
mov edx, ecx
or edx, 0x8a
and ecx, 0x8a
add ecx, edx
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xa
jb 0x410820
mov ecx, dword [0x448868]
test ecx, ecx
je case.0x40fe6f.25
mov edx, dword [esp + 0x18]
xor esi, esi
mov edi, dword [0x44886c]
jmp 0x4106f0
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x170], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc8], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x15c], eax
mov esp, eax
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1a0], eax
mov esp, eax
push eax
mov dword [esi + 0x14c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1c4], eax
mov esp, eax
push eax
mov dword [esi + 0xd0], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1c0], eax
mov esp, eax
push eax
mov dword [esi + 0xb8], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1bc], eax
mov esp, eax
push eax
mov dword [esi + 0x168], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1b8], eax
mov esp, eax
push eax
mov dword [esi + 0x164], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xd8], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1b4], eax
mov esp, eax
push eax
mov dword [esi + 0x148], esp
push eax
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x5c], esp
push eax
mov dword [esi + 0xcc], esp
push eax
mov dword [esi + 0x9c], esp
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x98], eax
mov esp, eax
push eax
mov dword [esi + 0xd4], esp
push eax
mov dword [esi + 0x174], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x38], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x16c], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x160], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x8c], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x150], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x48], eax
mov esp, eax
push eax
mov dword [esi + 0x144], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1b0], eax
mov esp, eax
push eax
mov dword [esi + 0x140], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1ac], eax
mov esp, eax
push eax
mov dword [esi + 0xbc], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1a8], eax
mov esp, eax
push eax
mov dword [esi + 0x13c], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1a4], eax
mov esp, eax
push eax
mov dword [esi + 0x28], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0xc0], esp
sub esp, 0x10
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
mov dword [esi + 0x94], esp
sub esp, 0xc
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x44], esp
push eax
mov dword [esi + 0x134], esp
push eax
mov dword [esi + 0x80], esp
push eax
mov dword [esi + 0xb0], esp
push eax
mov dword [esi + 0x58], esp
push eax
mov dword [esi + 0x90], esp
sub esp, 0x68
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
push eax
mov dword [esi + 0xb4], esp
push eax
mov dword [esi + 0xc4], esp
push eax
mov edi, esp
push eax
mov eax, esp
jmp dword [esi + 0x60]
mov dword [esi + 0x104], eax
mov dword [esi + 0x74], edi
mov dword [esi + 0x3c], edx
mov dword [esi + 0x190], ecx
mov dword [esi + 0x194], ebx
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x158], eax
mov esp, eax
push eax
mov dword [esi + 0xfc], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x154], eax
mov esp, eax
push eax
mov dword [esi + 0x70], esp
push eax
mov dword [esi + 0xa0], esp
push eax
mov dword [esi + 0x50], esp
push eax
mov dword [esi + 0x40], esp
push eax
mov dword [esi + 0x120], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x18c], eax
mov esp, eax
push eax
mov dword [esi + 0x118], esp
push eax
mov dword [esi + 0x114], esp
push eax
mov dword [esi + 0x130], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x60], eax
mov esp, eax
push eax
mov dword [esi + 0x12c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x110], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x10c], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xf4], eax
mov esp, eax
push eax
sub esp, 8
mov dword [esi + 0x184], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x54], eax
mov esp, eax
push eax
sub esp, 0x54
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa8], eax
mov esp, eax
push eax
mov dword [esi + 0x100], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x198], eax
mov esp, eax
push eax
mov dword [esi + 0xf8], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xdc], eax
mov esp, eax
push eax
mov dword [esi + 0xa4], esp
push eax
mov dword [esi + 0xf0], esp
push eax
mov dword [esi + 0x7c], esp
push eax
mov dword [esi + 0x78], esp
push eax
mov dword [esi + 0x11c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x188], eax
mov esp, eax
push eax
mov dword [esi + 0xac], esp
push eax
mov dword [esi + 0x180], esp
push eax
mov dword [esi + 0x128], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x17c], eax
mov esp, eax
push eax
mov dword [esi + 0x124], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x19c], eax
mov esp, eax
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x108], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xec], eax
mov esp, eax
mov word [esi + 0x10], 0x2d4b
mov dword [esi + 0x12], 0
mov dword [esi + 0x16], 0
mov dword [esi + 0x1a], 0
mov word [esi + 0x1e], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xf
ja 0x410d04
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x10]
lea edx, [eax - 0x10da2c5a]
add eax, 0xa6
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi], edx
mov eax, dword [esi]
add al, 0x76
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x10
jb 0x410cd0
lea eax, [esi + 0x10]
push eax
push dword [ebp + 8]
call fcn.004029b0
add esp, 8
xor ecx, ecx
mov dword [esi + 0x138], eax
test eax, eax
sete cl
xor edx, edx
xor eax, eax
mov edi, dword [esi + 0x38]
mov ebx, dword [esi + 0x28]
jmp dword [ecx*4 + 0x4428cc]
mov dword [esi + 0x178], edx
push dword [esi + 0x138]
call fcn.00402f20
mov edx, dword [esi + 0x178]
add esp, 4
xor ecx, ecx
cmp edx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x4428d4]
mov eax, dword [esi + 0x54]
inc eax
mov dword [esi + 0xc], eax
push edx
push dword [esi + 0x138]
call fcn.00402f30
add esp, 8
mov dword [esi + 4], eax
mov word [esi + 0x10], 0x39a2
mov dword [esi + 0x12], 0
mov dword [esi + 0x16], 0
mov byte [esi + 0x1a], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x410df2
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [esi + ecx + 0x10]
lea ecx, [eax + edx]
add eax, 0xa7
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x25a849a7
mov dword [esi], ecx
mov eax, dword [esi]
mov ecx, eax
xor ecx, 0x6e
and eax, 0x6e
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x410db0
push 3
lea eax, [esi + 0x10]
push eax
push dword [esi + 4]
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4428dc]
mov word [esi + 0x10], 0x2d58
mov dword [esi + 0x12], 0
mov dword [esi + 0x15], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x410e77
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x10]
lea edx, [eax + ecx]
add edx, 0xd78621a6
add eax, 0xd78621a6
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi], edx
mov eax, dword [esi]
add al, 0x76
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x410e40
lea eax, [esi + 0x10]
push eax
push dword [esi + 4]
call fcn.00402870
add esp, 8
fnstcw word [esi + 0x6c]
movzx eax, word [esi + 0x6c]
or eax, 0xc00
mov word [esi + 0xe8], ax
fldcw word [esi + 0xe8]
fistp dword [esi + 0x1dc]
fldcw word [esi + 0x6c]
mov eax, dword [esi + 0x1dc]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x4428e4]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x4428ec]
sete al
movzx eax, al
jmp dword [eax*4 + 0x4428f4]
mov word [edi], 0xcda7
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov word [edi + 0xa], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x410f2f
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x7d11ecde]
add eax, 0xde
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0xee
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x410f00
push 2
push edi
push dword [esi + 4]
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4429ac]
mov edx, dword [esi + 0x16c]
mov word [edx], 0x65f6
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov word [edx + 0xa], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x410fc1
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0xf7f1e11]
add eax, 0x11
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x16c]
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 0x88
and eax, 8
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x410f80
push 2
push edx
push dword [esi + 4]
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4429b4]
mov edx, dword [esi + 0x160]
mov word [edx], 0xd94d
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov byte [edx + 0xa], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xa
ja 0x411048
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0x45afe324
add eax, 0x45afe324
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x160]
mov eax, dword [esi + 0x10]
add al, 4
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xb
jb 0x411010
push 5
push edx
push dword [esi + 4]
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4429bc]
mov edx, dword [esi + 0x8c]
mov word [edx], 0x8518
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 9], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xc
ja 0x4110d8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0xbb3c2715
add eax, 0xbb3c2715
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x8c]
mov eax, dword [esi + 0x10]
add al, 0x6d
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xd
jb 0x4110a0
mov ebx, dword [esi + 4]
jmp dword [0x4429c4]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x4428fc]
mov edx, dword [esi + 0x158]
mov word [edx], 0x91e6
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 0xa], 0
mov byte [edx + 0xe], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xe
ja 0x411168
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0x8625cb93
add eax, 0x8625cb93
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x158]
mov eax, dword [esi + 0x10]
add al, 0xfb
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xf
jb 0x411130
push edx
push dword [esi + 4]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x104]
mov dword [ecx], eax
mov edx, dword [esi + 0x154]
mov word [edx], 0xa518
mov word [edx + 6], 0
mov dword [edx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x4111f7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0xf40682c5
add eax, 0xf40682c5
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x154]
mov eax, dword [esi + 0x10]
mov ecx, eax
or ecx, 0x9c
and eax, 0x9c
add eax, ecx
inc al
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x4111b0
push edx
push dword [esi + 4]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0xfc]
mov dword [ecx], eax
mov ecx, dword [esi + 0x104]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x442af4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442afc]
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x411240
mov ecx, edx
not ecx
and ecx, eax
not eax
and eax, edx
sub ecx, eax
lea eax, [edx + ecx]
mov dword [esi + 4], eax
xor ebx, ebx
mov dword [esi + 0x34], ecx
test ecx, ecx
jle 0x411dfe
mov dword [esi + 0x30], edx
cmp byte [edx], 0
mov edx, dword [esi + 4]
je 0x411e01
xor ebx, ebx
mov edi, dword [esi + 0x30]
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push edi
call fcn.0040ed80
mov edx, dword [esi + 4]
add esp, 0xc
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x411e01
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411280
jmp 0x411e01
mov edi, dword [esi + 0x198]
mov word [edi], 0x7996
mov dword [edi + 2], 0
mov dword [edi + 5], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 8
ja 0x41131f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + 0x7ad9522f]
add eax, 0x2f
or eax, ecx
and eax, edx
or ecx, edx
sub ecx, eax
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
add al, 0xb7
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 9
jb 0x4112f0
push edi
push dword [esi + 4]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x100]
mov dword [ecx], eax
mov edx, dword [esi + 0xdc]
mov word [edx], 0x18c
mov dword [edx + 0xa], 0
mov dword [edx + 6], 0
mov dword [edx + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xd
ja 0x4113a4
mov eax, dword [esi]
mov ecx, dword [esi]
mov edx, dword [esi + 0xdc]
movzx edx, byte [edx + ecx]
lea ecx, [eax - 0xc7b84d5]
lea edi, [eax + 0x2b]
or ecx, edi
and edi, edx
and ecx, edx
add ecx, edi
add eax, edx
add eax, 0xf3847b2b
mov edx, dword [esi + 0xdc]
sub eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xd3
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xe
jb case.default.0x4113ca
push edx
push dword [esi + 4]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0xf8]
mov dword [ecx], eax
mov ecx, dword [esi + 0x100]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
mov edi, dword [esi + 0x38]
jmp dword [ecx*4 + 0x442ba4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442bac]
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x4113f0
mov ecx, edx
not ecx
and ecx, eax
not eax
and eax, edx
sub ecx, eax
lea eax, [edx + ecx]
mov dword [esi + 4], eax
xor ebx, ebx
mov dword [esi + 0x2c], ecx
test ecx, ecx
mov dword [esi + 0x24], edx
jle 0x411462
cmp byte [edx], 0
mov edx, dword [esi + 4]
je 0x411462
xor ebx, ebx
mov edi, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push edi
call fcn.0040ed80
mov edx, dword [esi + 4]
add esp, 0xc
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x411462
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411430
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411470
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xa4]
mov dword [eax], ecx
mov dword [esi + 0x10], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 0xc], eax
cmp eax, ecx
jbe 0x4114d1
cmp dword [esi + 0x2c], 0
mov ebx, dword [esi + 0x24]
mov edi, dword [esi + 4]
jle 0x4114d1
cmp byte [ebx], 0
je 0x4114d1
lea eax, [esi + 0x10]
push eax
push edi
push ebx
mov dword [esi + 4], ecx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, dword [esi + 4]
add ecx, 2
cmp ecx, dword [esi + 0xc]
jae 0x4114d1
add ebx, eax
cmp ebx, edi
jb 0x4114a0
mov word [ecx], 0
mov eax, dword [esi + 0xf8]
mov ebx, dword [eax]
xor eax, eax
cmp byte [ebx + eax], 0
lea eax, [eax + 1]
jne 0x4114e0
lea ecx, [ebx + eax]
dec ecx
mov edx, ebx
not edx
mov dword [esi + 0xc], edx
and ecx, edx
add eax, ebx
neg eax
and eax, ebx
sub ecx, eax
mov eax, ecx
inc eax
mov dword [esi + 4], ecx
lea eax, [ecx + ecx + 2]
jns 0x41150f
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0xf0]
mov dword [eax], edi
mov ecx, dword [esi + 4]
mov edx, ecx
test ebx, ebx
jne 0x411544
xor eax, eax
nop
nop
nop
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x411530
lea edx, [eax - 1]
and edx, dword [esi + 0xc]
neg eax
and eax, ebx
sub edx, eax
mov dword [esi + 0x10], 0
lea eax, [edi + ecx*2]
mov dword [esi + 0xc], eax
cmp eax, edi
mov ecx, edi
jbe 0x411595
test edx, edx
jle 0x411595
add edx, ebx
nop
nop
nop
cmp byte [ebx], 0
je 0x411595
lea eax, [esi + 0x10]
push eax
push edx
push ebx
mov edi, edx
mov dword [esi + 4], ecx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, dword [esi + 4]
add ecx, 2
cmp ecx, dword [esi + 0xc]
jae 0x411595
add ebx, eax
cmp ebx, edi
mov edx, edi
jb 0x411560
mov word [ecx], 0
mov eax, dword [esi + 0x7c]
mov dword [eax], 0
mov eax, dword [esi + 0x78]
mov dword [eax], 0
mov edi, dword [esi + 0x188]
mov word [edi], 0x10d
mov byte [edi + 2], 0x9a
mov dword [edi + 3], 0
mov word [edi + 7], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 8
ja 0x411618
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax - 0x785dcc94]
add eax, 0x6c
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 0xb
and eax, 0xb
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 9
jb 0x4115e0
push edi
push dword [ebp + 8]
call fcn.004029b0
add esp, 8
mov ecx, dword [esi + 0x11c]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442bb4]
push eax
call fcn.00402f20
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto byte [esi + 4]
mov edx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x411661
mov ebx, eax
mov eax, dword [esi + 0x78]
mov ecx, edi
mov dword [eax], edi
cmp byte [esi + 4], 0
jne 0x411670
mov edx, ebx
mov ebx, dword [case.0x411633.5]
mov dword [esi + 4], ecx
mov edi, edx
nop
nop
nop
nop
nop
push edi
call fcn.004090e0
add esp, 4
mov ecx, dword [esi + 4]
mov dword [eax], ecx
jmp ebx
add eax, 4
xor ecx, ecx
mov edi, dword [esi + 4]
test edi, edi
sete cl
jmp dword [ecx*4 + 0x442bcc]
lea ecx, [edi + edi*2]
lea ecx, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
lea edx, [eax + 0xc]
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x442bd4]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
add edx, 0xc
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x442bd4]
mov ecx, dword [esi + 0x7c]
mov dword [ecx], eax
xor ebx, ebx
xor eax, eax
cmp ebx, edi
mov ecx, dword [esi + 0x108]
lea ecx, [ecx + 3]
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0xac]
mov dword [ecx], ebx
setb al
mov edi, dword [esi + 0x180]
jmp dword [eax*4 + 0x442bdc]
jmp dword [0x442be4]
nop
nop
nop
nop
nop
nop
jmp dword [0x442bec]
mov edi, dword [esi + 0xec]
mov ecx, edi
push 3
call fcn.004097f0
mov eax, dword [esi + 0x78]
mov eax, dword [eax]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x7c]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xf0]
mov ecx, dword [eax]
jmp dword [0x442bf4]
push ebx
push dword [edi]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0xac]
mov ebx, dword [ecx]
lea ecx, [ebx + ebx*2]
shl ecx, 2
mov edx, dword [esi + 0x7c]
add ecx, dword [edx]
push eax
mov eax, dword [esi + 0x128]
push dword [eax]
mov eax, dword [esi + 0x124]
push dword [eax]
call fcn.00416370
inc ebx
mov eax, dword [esi + 0x78]
mov eax, dword [eax]
xor ecx, ecx
cmp ebx, eax
mov eax, dword [esi + 0xac]
mov dword [eax], ebx
setb cl
jmp dword [ecx*4 + 0x442bdc]
push ebx
mov eax, dword [esi + 0x11c]
push dword [eax]
call fcn.00402f30
add esp, 8
mov dword [edi], eax
mov ebx, dword [esi + 0x17c]
mov word [ebx], 0x5f49
mov byte [ebx + 2], 0x22
mov dword [ebx + 3], 0
mov dword [ebx + 7], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xa
ja 0x41183a
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [ebx + edx]
lea ebx, [ecx + edx]
add ebx, 0x65b1ef26
add ecx, 0x65b1ef26
and ecx, edx
add ecx, ecx
sub ebx, ecx
mov dword [esi + 0x10], ebx
mov ebx, dword [esi + 0x17c]
mov ecx, dword [esi + 0x10]
add cl, 0xf6
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xb
jb 0x411800
push ebx
push eax
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x128]
mov dword [ecx], eax
mov ebx, dword [esi + 0x19c]
mov word [ebx], 0x4b79
mov byte [ebx + 2], 0xd0
mov dword [ebx + 3], 0
mov dword [ebx + 7], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xa
ja 0x4118bc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + edx]
add ecx, 0xd1220aa3
add eax, 0xd1220aa3
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x8b
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xb
jb 0x411880
push ebx
push dword [edi]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x124]
mov dword [ecx], eax
mov ebx, dword [esi + 0x108]
mov word [ebx], 0x9989
mov byte [ebx + 2], 0x72
mov eax, dword [esi + 4]
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x411770
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
lea edx, [eax - 0x57d36d2]
and edx, ecx
add eax, ecx
add eax, 0xfa82c92e
add edx, edx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xbe
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x411900
jmp 0x411770
sete al
movzx eax, al
jmp dword [eax*4 + 0x442904]
mov word [esi + 0x10], 0x8136
mov dword [esi + 0x12], 0
mov word [esi + 0x16], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 7
ja 0x4119ae
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x10]
lea edx, [eax + 0x6b]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x177ce96b
mov dword [esi], eax
mov eax, dword [esi]
mov ecx, eax
xor ecx, 0x12
and eax, 0x12
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 8
jb 0x411970
mov ecx, dword [esi + 4]
push 2
lea eax, [esi + 0x10]
push eax
push ecx
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x44290c]
mov edx, dword [esi + 0x170]
mov word [edx], 0x990d
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 0xa], 0
mov byte [edx + 0xe], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x411a57
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
mov edx, eax
and edx, 0xfad3a8ec
xor eax, 0xfad3a8ec
lea eax, [eax + edx*2]
mov edx, dword [esi + 0x170]
xor eax, ecx
mov dword [esi], eax
mov eax, dword [esi]
add al, 0x8c
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x411a10
push 5
push edx
push dword [esi + 4]
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442914]
mov edx, dword [esi + 0xc8]
mov word [edx], 0x9922
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x411b0c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc8]
movzx edx, byte [edx + ecx]
lea ecx, [eax + 0xbc]
and ecx, edx
mov edi, 0xf176b843
sub edi, eax
or edi, edx
add edx, eax
add edx, 0xe8947bc
add edi, eax
lea eax, [ecx + edi]
add eax, 0xe8947bd
mov ecx, edx
not ecx
and ecx, eax
not eax
and eax, edx
mov edx, dword [esi + 0xc8]
sub eax, ecx
mov dword [esi], eax
mov eax, dword [esi]
add al, 0xdc
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x411ab0
push 2
push edx
push dword [esi + 4]
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x38]
jmp dword [ecx*4 + 0x44291c]
mov edx, dword [esi + 0x15c]
mov word [edx], 0xda8
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov byte [edx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x411bae
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
mov edx, eax
and edx, 0x1791cc7e
xor eax, 0x1791cc7e
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi], edx
mov edx, dword [esi + 0x15c]
mov eax, dword [esi]
add al, 0x8e
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x411b60
push 3
push edx
push dword [esi + 4]
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442924]
movzx eax, bl
mov ebx, dword [esi + 0x28]
jmp dword [eax*4 + 0x44292c]
mov edi, dword [esi + 0x1c4]
mov word [edi], 0x6dfc
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov byte [edi + 0xa], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xa
ja 0x411c4c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x538d7272
add eax, 0x538d7272
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xe2
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xb
jb 0x411c10
push edi
mov ebx, dword [esi + 4]
push ebx
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x14c]
mov dword [ecx], eax
mov edi, dword [esi + 0x1c0]
mov word [edi], 0xb919
mov word [edi + 0xa], 0
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x411cc2
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0x1a1293c7
add eax, 0x1a1293c7
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x8f
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x411c90
push edi
push ebx
call fcn.004029b0
add esp, 8
mov ecx, dword [esi + 0xd0]
mov dword [ecx], eax
mov edi, dword [esi + 0x1bc]
mov word [edi], 0x31ba
mov dword [edi + 0xa], 0
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xd
ja 0x411d3f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax - 0x69ef6628]
add eax, 0xd8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x18
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xe
jb 0x411d10
push edi
push ebx
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0xb8]
mov dword [ecx], eax
mov edi, dword [esi + 0x1b8]
mov word [edi], 0x35aa
mov word [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x411db2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0x7ca07a09
add eax, 0x7ca07a09
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0xc1
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x411d80
push edi
push ebx
call fcn.00402870
add esp, 8
fnstcw word [esi + 0x64]
movzx eax, word [esi + 0x64]
or eax, 0xc00
mov word [esi + 0xe0], ax
fldcw word [esi + 0xe0]
fistp dword [esi + 0x1d8]
fldcw word [esi + 0x64]
mov eax, dword [esi + 0x1d8]
mov ecx, dword [esi + 0x168]
mov dword [ecx], eax
mov edi, dword [esi + 0x164]
mov ebx, dword [esi + 0xd8]
jmp dword [0x442934]
mov dword [esi + 0x30], edx
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411e0f
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x70]
mov dword [eax], ecx
mov eax, ebx
and eax, 1
xor ebx, 1
lea eax, [ebx + eax*2]
mov dword [esi + 0x10], 0
lea eax, [ecx + eax*2]
add eax, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esi + 0x2c], eax
cmp eax, ecx
jbe 0x411e80
cmp dword [esi + 0x34], 0
mov ebx, dword [esi + 0x30]
mov edi, dword [esi + 4]
jle 0x411e80
nop
nop
nop
cmp byte [ebx], 0
je 0x411e80
lea eax, [esi + 0x10]
push eax
push edi
push ebx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 0x24]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x2c]
mov dword [esi + 0x24], ecx
jae 0x411e80
add ebx, eax
cmp ebx, edi
jb 0x411e50
mov eax, dword [esi + 0x24]
mov word [eax], 0
mov eax, dword [esi + 0xfc]
mov edx, dword [eax]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x411ea0
lea ecx, [edx + eax]
dec ecx
mov edi, edx
not edi
and edi, ecx
add eax, edx
neg eax
and eax, edx
sub edi, eax
lea eax, [edx + edi]
mov dword [esi + 4], eax
xor ebx, ebx
mov dword [esi + 0x34], edi
test edi, edi
mov dword [esi + 0x30], edx
jle 0x411f12
cmp byte [edx], 0
mov edx, dword [esi + 4]
je 0x411f12
xor ebx, ebx
mov edi, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push edi
call fcn.0040ed80
mov edx, dword [esi + 4]
add esp, 0xc
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x411f12
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411ee0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411f20
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xa0]
mov dword [eax], ecx
mov dword [esi + 0x10], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x2c], eax
cmp eax, ecx
jbe 0x411f90
cmp dword [esi + 0x34], 0
mov ebx, dword [esi + 0x30]
mov edi, dword [esi + 4]
jle 0x411f90
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x411f90
lea eax, [esi + 0x10]
push eax
push edi
push ebx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 0x24]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x2c]
mov dword [esi + 0x24], ecx
jae 0x411f90
add ebx, eax
cmp ebx, edi
jb 0x411f60
mov eax, dword [esi + 0x24]
mov word [eax], 0
mov eax, dword [esi + 0x50]
mov dword [eax], 0
mov eax, dword [esi + 0x40]
mov dword [eax], 0
mov edi, dword [esi + 0x18c]
mov word [edi], 0x3955
mov byte [edi + 2], 0xb2
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov word [edi + 0xb], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xc
ja 0x412011
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0xe8]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xb26088e8
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xa8
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xd
jb 0x411fe0
push edi
push dword [ebp + 8]
call fcn.004029b0
add esp, 8
mov ecx, eax
mov eax, dword [esi + 0x120]
mov dword [eax], ecx
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x442b04]
mov ebx, ecx
jmp dword [0x442b10]
push ecx
call fcn.00402f20
mov ecx, ebx
add esp, 4
mov edx, dword [esi + 0x40]
mov dword [edx], eax
nop
nop
nop
push ecx
call fcn.00402f20
mov ecx, ebx
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x40]
mov dword [eax], edi
jmp dword [0x442b14]
mov ecx, 0xc
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x412085
mov ebx, eax
test dl, dl
jne 0x41208b
mov ecx, ebx
push ecx
call fcn.004090e0
add esp, 4
mov dword [eax], edi
add eax, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x442b1c]
lea ecx, [edi + edi*2]
lea ecx, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea edx, [eax + 0xc]
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x442b24]
mov dword [edx], 0
mov dword [edx + 4], 0
mov byte [edx + 8], 0
add edx, 0xc
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x442b24]
mov ecx, dword [esi + 0x50]
mov dword [ecx], eax
mov eax, dword [esi + 0x118]
mov dword [eax], 0
mov eax, dword [esi + 0x60]
add eax, 3
mov dword [esi + 4], eax
mov eax, dword [esi + 0x110]
add eax, 3
mov dword [esi + 0x24], eax
xor edi, edi
xor eax, eax
mov ecx, dword [esi + 0x40]
cmp edi, dword [ecx]
setb al
mov ecx, dword [esi + 0x10c]
add ecx, 4
mov dword [esi + 0x2c], ecx
mov ebx, dword [esi + 0x114]
jmp dword [eax*4 + 0x442b2c]
mov eax, dword [case.0x41202e.0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ebx, dword [esi + 0xf4]
mov ecx, ebx
push 2
call fcn.004097f0
mov eax, dword [esi + 0x50]
mov edi, dword [eax]
mov eax, dword [esi + 0x40]
push dword [eax]
push edi
mov eax, dword [esi + 0xa0]
push dword [eax]
mov eax, dword [esi + 0x70]
push dword [eax]
push ebx
call fcn.00416980
add esp, 0x14
mov ecx, ebx
call fcn.0040a150
movzx eax, al
jmp dword [eax*4 + 0x442b54]
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x184]
mov byte [ecx + 0xa], 0
cmp eax, 0x3ff
ja 0x4123d7
lea edi, [ecx + 9]
mov byte [ecx + 9], 0x30
jmp 0x4124cd
xor eax, eax
mov ecx, dword [esi + 0x40]
cmp edi, dword [ecx]
setb al
mov ebx, dword [esi + 0x114]
jmp dword [eax*4 + 0x442b2c]
push edi
mov eax, dword [esi + 0x120]
push dword [eax]
call fcn.00402f30
add esp, 8
mov dword [ebx], eax
mov edi, dword [esi + 0x60]
mov word [edi], 0xfff1
mov byte [edi + 2], 0x6a
mov ecx, dword [esi + 4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov word [ecx + 8], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0xc
ja 0x41225f
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [edi + edx]
mov edi, ecx
and edi, 0x1fe427f2
xor ecx, 0x9fe427f2
lea ecx, [ecx + edi*2]
mov edi, dword [esi + 0x60]
xor ecx, edx
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
mov edx, ecx
xor edx, 0x61
and ecx, 0x61
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi]
mov byte [edi + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xd
jb 0x412220
push edi
push eax
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x130]
mov dword [ecx], eax
mov edi, dword [esi + 0x110]
mov word [edi], 0x1b0d
mov byte [edi + 2], 0x94
mov eax, dword [esi + 0x24]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x4122dd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x5f1ceb6d]
add eax, 0x6d
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 5
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x4122b0
push edi
push dword [ebx]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x12c]
mov dword [ecx], eax
mov edi, dword [esi + 0x10c]
mov dword [edi], 0x53f2fde2
mov eax, dword [esi + 0x2c]
mov dword [eax], 0
mov dword [eax + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xa
ja 0x41235d
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x73]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x4adaa073
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, eax
or ecx, 0xda
and eax, 0xda
add eax, ecx
inc al
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xb
jb 0x412320
push edi
push dword [ebx]
call fcn.00402af0
add esp, 8
xor edx, edx
test eax, eax
setg dl
mov ebx, dword [esi + 0x118]
mov edi, dword [ebx]
lea ecx, [edi + edi*2]
shl ecx, 2
mov eax, dword [esi + 0x50]
add ecx, dword [eax]
push edx
mov eax, dword [esi + 0x130]
push dword [eax]
mov eax, dword [esi + 0x12c]
push dword [eax]
call fcn.004161c0
jmp dword [0x442b44]
inc edi
mov dword [ebx], edi
jmp dword [0x442b4c]
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
mov dword [ebx], edi
inc edi
mov dword [ebx], edi
jmp dword [0x442b4c]
xor eax, eax
test edi, edi
sete al
mov ebx, dword [esi + 0x28]
jmp dword [eax*4 + 0x442b5c]
lea edi, [ecx + 0xa]
mov ecx, eax
shr ecx, 0xa
cmp eax, 0x19000
jb 0x4124b3
nop
nop
nop
nop
nop
nop
mov edx, 0x51eb851f
mov eax, ecx
mul edx
shr edx, 5
imul eax, edx, 0x64
mov ebx, ecx
sub ebx, eax
movzx eax, word [ebx + ebx + 0x43f528]
mov word [edi - 2], ax
add edi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x4123f0
cmp edx, 9
ja 0x4124be
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [edi - 1], al
dec edi
jmp 0x4124cd
mov ebx, dword [esi + 0x1a0]
mov word [ebx], 0x2c50
mov byte [ebx + 2], 0xb8
mov dword [ebx + 3], 0
mov byte [ebx + 7], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 7
ja 0x412494
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0xe7]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x89edcde7
mov dword [esi], eax
mov eax, dword [esi]
add al, 0xaf
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 8
jb 0x412460
push 3
push ebx
push dword [esi + 4]
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esi + 0x28]
jmp dword [ecx*4 + 0x44292c]
mov edx, ecx
cmp edx, 9
jbe 0x412425
movzx eax, word [edx + edx + 0x43f528]
mov word [edi - 2], ax
add edi, 0xfffffffe
mov ebx, dword [esi + 0x54]
mov dword [ebx], 0xa39ae3d3
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xf
ja 0x41253b
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x3b]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x1fd8973b
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x63
mov ecx, dword [esi]
mov byte [ebx + ecx], al
mov eax, dword [esi]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi], eax
mov eax, dword [esi]
cmp eax, 0x10
jb 0x412500
mov ebx, dword [esi + 0xa8]
mov dword [ebx], 0x3534c0cb
mov dword [ebx + 4], 0xf7b3373b
mov dword [ebx + 8], 0x47bbb4be
mov dword [ebx + 0xc], 0x43febdbd
mov dword [ebx + 0x10], 0xb645fd4f
mov dword [ebx + 0x14], 0xa8e6b54a
mov dword [ebx + 0x18], 0x56515bac
mov dword [ebx + 0x1c], 0xef5b5ca9
mov dword [ebx + 0x20], 0x5ca5ac5c
mov dword [ebx + 0x24], 0x6bd655a5
mov dword [ebx + 0x28], 0x9b6ed567
mov dword [ebx + 0x2c], 0x9261d19d
mov dword [ebx + 0x30], 0x65976762
mov dword [ebx + 0x34], 0x747ad9ac
mov dword [ebx + 0x38], 0xc3768478
mov dword [ebx + 0x3c], 0x78818070
mov dword [ebx + 0x40], 0x74ca7181
mov dword [ebx + 0x44], 0x517b6f81
mov word [ebx + 0x48], 0x1534
mov word [ebx + 0x56], 0
mov dword [ebx + 0x52], 0
mov dword [ebx + 0x4e], 0
mov dword [ebx + 0x4a], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x57
ja 0x412632
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
mov edx, dword [esi + 0xa8]
movzx ebx, byte [edx + ecx]
lea ecx, [eax - 0x2a47cc6]
mov edx, ecx
and edx, ebx
xor ecx, ebx
add eax, 0x3a
and eax, ebx
mov ebx, dword [esi + 0xa8]
add eax, edx
sub ecx, eax
lea eax, [ecx + edx*2]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x6a
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x58
jb 0x4125f0
lea eax, [0x44785b]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x412640
movzx ecx, byte [ebx]
test cl, cl
je 0x41266f
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [ebx + edx + 1]
inc edx
test cl, cl
jne 0x412660
add eax, edx
mov ebx, dword [esi + 0x28]
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
je 0x41268b
inc edi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x412680
mov byte [eax], 0
mov ecx, dword [esi + 0x54]
movzx ecx, byte [ecx]
test cl, cl
je 0x4126ab
mov edx, dword [esi + 0xc]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4126a0
mov byte [eax], 0
mov eax, dword [esi + 0x50]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x442b5c]
lea eax, [edi - 4]
mov dword [esi + 4], eax
mov eax, dword [edi - 4]
xor ecx, ecx
test eax, eax
lea eax, [eax + eax*2]
lea ebx, [edi + eax*4]
sete cl
jmp dword [ecx*4 + 0x442b64]
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 4]
jmp dword [0x442b74]
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x442b6c]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x41270e
push eax
call fcn.004090f0
add esp, 4
mov eax, dword [ebx - 8]
add ebx, 0xfffffff4
test eax, eax
je 0x4126f0
push eax
call fcn.004090f0
add esp, 4
jmp 0x4126f0
mov edi, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x442c78]
mov edx, dword [esi + 0x178]
jmp dword [0x442c84]
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edx
jmp dword [0x442c8c]
mov edx, dword [esi + 0x150]
mov word [edx], 0xd934
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 0xa], 0
mov byte [edx + 0xe], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xe
ja 0x4129f7
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x9c]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x150]
add eax, 0x2747879c
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xbc
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xf
jb 0x4129c0
push 3
push edx
push dword [esi + 4]
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x4429dc]
jmp dword [0x4429e4]
mov dword [ecx], edi
mov ebx, dword [eax]
push ebx
call fcn.00402f20
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x442a84]
push edi
push ebx
call fcn.00402f00
add esp, 8
push eax
call fcn.00402850
add esp, 4
mov edi, eax
mov eax, dword [esi + 0xc4]
mov dword [eax], edi
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x442a8c]
jmp dword [0x442aa4]
jmp 0x412beb
mov eax, dword [case.0x4134d0.32]
mov ecx, dword [esi + 0xb4]
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x442ab4]
push edi
call fcn.004090f0
add esp, 4
mov eax, dword [case.0x4134d0.32]
mov ecx, dword [esi + 0xb4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edi, dword [ecx]
inc edi
mov eax, dword [esi + 0xbc]
jmp 0x412a20
mov eax, dword [esi + 0xc4]
mov ebx, dword [eax]
xor eax, eax
nop
nop
nop
nop
nop
nop
cmp byte [ebx + eax], 0
lea eax, [eax + 1]
jne 0x412af0
lea ecx, [ebx + eax]
dec ecx
mov edx, ebx
not edx
mov dword [esi + 0xc], edx
and ecx, edx
add eax, ebx
neg eax
and eax, ebx
sub ecx, eax
mov eax, ecx
inc eax
mov dword [esi + 4], ecx
lea eax, [ecx + ecx + 2]
jns 0x412b1f
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x74]
mov dword [eax], edi
mov ecx, dword [esi + 4]
mov edx, ecx
test ebx, ebx
jne 0x412b54
xor eax, eax
nop
nop
nop
nop
nop
nop
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412b40
lea edx, [eax - 1]
and edx, dword [esi + 0xc]
neg eax
and eax, ebx
sub edx, eax
mov dword [esi + 0x10], 0
lea eax, [edi + ecx*2]
mov dword [esi + 0xc], eax
cmp eax, edi
mov ecx, edi
jbe 0x412bb0
test edx, edx
jle 0x412bb0
add edx, ebx
nop
nop
nop
cmp byte [ebx], 0
je 0x412bb0
lea eax, [esi + 0x10]
push eax
push edx
push ebx
mov edi, edx
mov dword [esi + 4], ecx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, dword [esi + 4]
add ecx, 2
cmp ecx, dword [esi + 0xc]
jae 0x412bb0
add ebx, eax
cmp ebx, edi
mov edx, edi
jb 0x412b70
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], 0
push 0
push 0
mov eax, dword [esi + 0x28]
push dword [eax]
mov eax, dword [esi + 0xc0]
push dword [eax]
mov eax, dword [esi + 0x74]
push dword [eax]
mov eax, dword [esi + 0x58]
push dword [eax]
mov eax, dword [esi + 0x90]
push dword [eax]
push dword [esi + 0x3c]
call fcn.0041b9e0
add esp, 0x20
mov eax, dword [esi + 0xc4]
mov edi, dword [eax]
xor eax, eax
nop
nop
nop
cmp byte [edi + eax], 0
lea eax, [eax + 1]
jne 0x412bf0
lea ecx, [edi + eax]
dec ecx
mov edx, edi
not edx
mov dword [esi + 0xc], edx
and ecx, edx
add eax, edi
neg eax
and eax, edi
sub ecx, eax
mov eax, ecx
inc eax
mov dword [esi + 4], ecx
lea eax, [ecx + ecx + 2]
jns 0x412c1f
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x74]
mov dword [eax], ebx
mov ecx, dword [esi + 4]
mov edx, ecx
test edi, edi
jne 0x412c54
xor eax, eax
nop
nop
nop
nop
nop
nop
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412c40
lea edx, [eax - 1]
and edx, dword [esi + 0xc]
neg eax
and eax, edi
sub edx, eax
mov dword [esi + 0x10], 0
lea eax, [ebx + ecx*2]
mov dword [esi + 0xc], eax
cmp eax, ebx
mov ecx, ebx
jbe 0x412cb0
test edx, edx
jle 0x412cb0
add edx, edi
nop
nop
nop
cmp byte [edi], 0
je 0x412cb0
lea eax, [esi + 0x10]
push eax
push edx
push edi
mov ebx, edx
mov dword [esi + 4], ecx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 4]
mov word [edx], cx
mov ecx, dword [esi + 4]
add ecx, 2
cmp ecx, dword [esi + 0xc]
jae 0x412cb0
add edi, eax
cmp edi, ebx
mov edx, ebx
jb 0x412c70
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], 0
mov eax, dword [esi + 0x74]
mov edi, dword [eax]
push 0
push 0
mov eax, dword [esi + 0x28]
push dword [eax]
mov eax, dword [esi + 0xc0]
push dword [eax]
push edi
mov eax, dword [esi + 0x58]
push dword [eax]
mov eax, dword [esi + 0x90]
push dword [eax]
push dword [esi + 0x3c]
call fcn.0041b9e0
add esp, 0x20
jmp dword [0x442aac]
mov eax, dword [esi + 0x90]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442ad4]
push eax
call fcn.004090f0
add esp, 4
mov eax, dword [case.0x4134d0.51]
mov ebx, dword [esi + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442aec]
push eax
call fcn.004090f0
add esp, 4
mov edi, dword [esi + 0x3c]
mov ecx, edi
call fcn.0040a150
mov ecx, edi
call fcn.00409830
mov edi, dword [esi + 0x44]
push dword [edi]
call fcn.00437dc0
add esp, 4
mov ecx, dword [esi + 0x88]
call fcn.00438240
jmp 0x412955
jmp dword [0x442c44]
xor eax, eax
mov edx, dword [esi + 0x24]
test edx, edx
sete al
jmp dword [eax*4 + 0x442c4c]
push edx
call fcn.004090f0
mov ecx, dword [esi + 4]
add esp, 4
xor eax, eax
test ecx, ecx
sete al
mov edi, dword [esi + 0x38]
mov ebx, dword [esi + 0x28]
jmp dword [eax*4 + 0x442c54]
xor eax, eax
test ecx, ecx
sete al
mov edi, dword [esi + 0x38]
mov ebx, dword [esi + 0x28]
jmp dword [eax*4 + 0x442c54]
push ecx
call fcn.004090f0
add esp, 4
mov ecx, dword [esi + 0xec]
call fcn.00409830
mov eax, dword [case.0x410eb6.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov word [ebx], 0xa296
mov byte [ebx + 2], 0x32
mov dword [ebx + 3], 0
mov dword [ebx + 7], 0
mov byte [ebx + 0xb], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x412e46
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
mov edx, eax
and edx, 0xe87c6108
xor eax, 0x687c6108
lea eax, [eax + edx*2]
mov ebx, dword [esi + 0xd8]
xor eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xc8
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x412e10
push ebx
push dword [esi + 4]
call fcn.00402870
add esp, 8
fnstcw word [esi + 0x6e]
movzx eax, word [esi + 0x6e]
or eax, 0xc00
mov word [esi + 0xea], ax
fldcw word [esi + 0xea]
fistp dword [esi + 0x1d0]
fldcw word [esi + 0x6e]
mov eax, dword [esi + 0x1d0]
mov dword [edi], eax
mov word [ebx], 0xa296
mov byte [ebx + 2], 0x32
mov dword [ebx + 3], 0
mov dword [ebx + 7], 0
mov byte [ebx + 0xb], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x412ee6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
mov edx, eax
and edx, 0xe87c6108
xor eax, 0x687c6108
lea eax, [eax + edx*2]
mov ebx, dword [esi + 0xd8]
xor eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xc8
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x412eb0
push ebx
push dword [esi + 4]
call fcn.00402870
add esp, 8
fnstcw word [esi + 0x66]
movzx eax, word [esi + 0x66]
or eax, 0xc00
mov word [esi + 0xe2], ax
fldcw word [esi + 0xe2]
fistp dword [esi + 0x1d4]
fldcw word [esi + 0x66]
mov eax, dword [esi + 0x1d4]
mov dword [edi], eax
jmp dword [0x442940]
mov edi, dword [esi + 0x1b4]
mov word [edi], 0xb5b8
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov dword [edi + 0xa], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xd
ja 0x412f8c
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x128713ab
add eax, 0xab
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x53
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xe
jb 0x412f50
push edi
push dword [esi + 4]
call fcn.00402af0
add esp, 8
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x14c]
mov edx, dword [eax]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x412fb0
lea ecx, [edx + eax]
dec ecx
mov edi, edx
not edi
and edi, ecx
add eax, edx
neg eax
and eax, edx
sub edi, eax
lea eax, [edx + edi]
mov dword [esi + 4], eax
xor ebx, ebx
mov dword [esi + 0x34], edi
test edi, edi
mov dword [esi + 0x30], edx
jle 0x413022
cmp byte [edx], 0
mov edx, dword [esi + 4]
je 0x413022
xor ebx, ebx
mov edi, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push edi
call fcn.0040ed80
mov edx, dword [esi + 4]
add esp, 0xc
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x413022
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x412ff0
mov eax, dword [esi + 0x148]
mov dword [eax], ebx
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413038
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, dword [esi + 0x4c]
mov dword [ecx], eax
mov dword [esi + 0x10], 0
lea ecx, [eax + ebx*2]
mov dword [esi + 0xc], eax
mov dword [esi + 0x24], ecx
cmp ecx, eax
jbe 0x4130af
cmp dword [esi + 0x34], 0
mov ecx, dword [esi + 0x5c]
mov edi, dword [esi + 0x30]
mov edx, dword [esi + 4]
jle 0x4130b2
mov eax, dword [esi + 0x4c]
nop
nop
nop
nop
cmp byte [edi], 0
je 0x4130b5
lea eax, [esi + 0x10]
push eax
push edx
push edi
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 0xc]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x24]
mov dword [esi + 0xc], ecx
jae 0x41312a
add edi, eax
mov edx, dword [esi + 4]
cmp edi, edx
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x5c]
jb 0x413070
jmp 0x4130b5
mov ecx, dword [esi + 0x5c]
mov eax, dword [esi + 0x4c]
mov edx, eax
mov eax, dword [esi + 0xc]
mov word [eax], 0
mov edi, dword [edx]
push ecx
push 0
push 0
push ebx
push edi
push 0
mov ebx, ecx
call dword [0x448864]
mov ebx, dword [ebx]
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x4130e0
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, dword [esi + 0xcc]
mov dword [ecx], eax
push dword [esi + 0x5c]
push ebx
push eax
mov eax, dword [esi + 0x148]
push dword [eax]
push edi
push 0
call dword [0x448864]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x442944]
push edi
call fcn.004090f0
add esp, 4
jmp dword [0x442950]
jmp dword [0x442950]
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x5c]
jmp 0x4130b5
push edi
call fcn.004090f0
add esp, 4
push edi
call fcn.004090f0
add esp, 4
jmp dword [0x442b80]
mov eax, dword [esi + 0xa0]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442b84]
push eax
call fcn.004090f0
add esp, 4
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0x38]
jmp dword [ecx*4 + 0x442b8c]
mov eax, dword [esi + 0x70]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0x38]
jmp dword [ecx*4 + 0x442b8c]
push eax
call fcn.004090f0
add esp, 4
mov ecx, dword [esi + 0xf4]
call fcn.00409830
mov eax, dword [case.0x410eb6.4]
nop
nop
jmp eax
xor eax, eax
mov ebx, dword [esi + 4]
cmp word [ebx], 0x5c
sete al
jmp dword [eax*4 + 0x442a3c]
mov ebx, dword [esi + 4]
add ebx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
jmp edi
xor eax, eax
cmp ebx, dword [esi + 0xc]
setae al
jmp dword [eax*4 + 0x442a1c]
mov dword [esi + 4], ebx
xor eax, eax
movzx eax, al
mov ebx, dword [esi + 0x24]
jmp dword [eax*4 + 0x442a24]
push edi
call fcn.004090f0
add esp, 4
mov ecx, ebx
push 0x400
call fcn.00438100
not eax
shr eax, 0x1f
mov ecx, ebx
mov ebx, dword [esi + 0x28]
jmp dword [eax*4 + 0x442a04]
mov eax, dword [esi + 0x84]
mov dword [eax], 0
mov ecx, dword [ecx]
mov dword [esi + 0x10], 0xd2d1d0d7
mov dword [esi + 0x14], 0
mov word [esi + 0x18], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x4132b6
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x10]
lea edi, [eax + edx]
add edi, 0x4ae6fa3
add eax, 0x4ae6fa3
and eax, edx
add eax, eax
sub edi, eax
mov dword [esi], edi
mov eax, dword [esi]
mov edx, eax
or edx, 0x8a
and eax, 0x8a
add eax, edx
inc al
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x413270
mov eax, dword [esi + 0x10]
mov edx, dword [0x448868]
test edx, edx
je 0x4132e5
xor edi, edi
mov ebx, dword [0x44886c]
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xd9a9c0b
je 0x4134f2
inc edi
cmp edx, edi
jne case.default.0x4132f5
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 0x84]
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x442a0c]
mov eax, dword [edi]
add eax, 2
push eax
call fcn.00437d30
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x44]
mov dword [esi + 4], ecx
mov dword [eax], ecx
mov eax, dword [edi]
add eax, 2
mov ecx, dword [esi + 0x88]
mov ecx, dword [ecx]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], 0xd2d1d0d7
mov dword [esi + 0x14], 0
mov word [esi + 0x18], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 9
ja 0x413398
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x10]
lea edi, [ecx + edx]
add edi, 0x4ae6fa3
add ecx, 0x4ae6fa3
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi], edi
mov ecx, dword [esi]
mov edx, ecx
or edx, 0x8a
and ecx, 0x8a
add ecx, edx
inc cl
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x10], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xa
jb 0x413350
mov ecx, dword [esi + 0x10]
mov ebx, dword [0x448868]
test ebx, ebx
je 0x4133c2
xor edi, edi
mov edx, dword [0x44886c]
nop
nop
nop
cmp dword [edx + edi*8], 0xd9a9c0b
je 0x4135c0
inc edi
cmp ebx, edi
jne 0x4133b0
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 0x44]
not ecx
shr ecx, 0x1f
jmp dword [ecx*4 + 0x442a14]
mov eax, dword [esi + 0x140]
mov ebx, dword [eax]
xor eax, eax
nop
nop
cmp byte [ebx + eax], 0
lea eax, [eax + 1]
jne 0x4133e0
lea edi, [ebx + eax]
dec edi
mov edx, ebx
not edx
mov dword [esi + 0xc], edx
and edi, edx
add eax, ebx
neg eax
and eax, ebx
sub edi, eax
mov eax, dword [esi + 0x134]
mov dword [eax], edi
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x413414
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x80]
mov dword [eax], ecx
mov edx, edi
test ebx, ebx
jne 0x413444
xor eax, eax
nop
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x413430
lea edx, [eax - 1]
and edx, dword [esi + 0xc]
neg eax
and eax, ebx
sub edx, eax
mov dword [esi + 0x10], 0
lea eax, [ecx + edi*2]
mov dword [esi + 0xc], eax
cmp eax, ecx
mov dword [esi + 4], ecx
jbe 0x413492
test edx, edx
jle 0x413492
add edx, ebx
nop
nop
cmp byte [ebx], 0
je 0x413492
lea eax, [esi + 0x10]
push eax
push edx
push ebx
mov edi, edx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 4]
mov word [edx], cx
add edx, 2
mov dword [esi + 4], edx
cmp edx, dword [esi + 0xc]
jae 0x413492
add ebx, eax
cmp ebx, edi
mov edx, edi
jb 0x413460
mov eax, dword [esi + 4]
mov word [eax], 0
mov eax, dword [esi + 0x44]
mov ecx, dword [eax]
movzx eax, word [ecx]
mov dword [esi + 0x2c], ecx
mov ecx, dword [ecx + 4]
and eax, 0xfffffffe
lea ebx, [ecx + eax]
add ebx, 0xfffffffe
xor eax, eax
mov dword [esi + 0xc], ecx
cmp ebx, ecx
setae al
mov ecx, dword [case.0x4134d0.7]
mov edx, dword [case.0x4134d0.12]
mov edi, dword [case.0x4134d0.16]
mov dword [esi + 0x24], ebx
jmp dword [eax*4 + 0x442a1c]
xor eax, eax
mov dword [esi + 4], ebx
cmp word [ebx], 0
setne al
mov ebx, dword [esi + 0x24]
jmp dword [eax*4 + 0x442a24]
jmp ecx
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 0x84]
je 0x4132eb
push edi
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x448870]
push edx
call fcn.00439850
add esp, 0x20
jmp 0x4132eb
mov dword [esi + 0x24], ebx
sub ebx, dword [esi + 0xc]
sar ebx, 1
mov eax, dword [esi + 0x134]
mov eax, dword [eax]
lea ecx, [ebx + eax]
mov dword [esi + 4], ebx
lea edx, [ebx + eax]
inc edx
lea eax, [ecx + ecx]
add eax, 2
test edx, edx
mov ebx, dword [esi + 0x80]
jns 0x413554
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0xb0]
mov dword [eax], edi
mov eax, dword [ebx]
mov ecx, dword [esi + 0xc]
cmp dword [esi + 0x24], ecx
je 0x413665
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 4]
mov ebx, dword [esi + 4]
lea eax, [ebx - 1]
mov dword [esi + 0x24], eax
mov eax, ebx
and eax, 3
je 0x4135f5
mov edx, dword [esi + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 4], eax
dec edx
movzx ebx, word [ecx]
xor eax, eax
test bx, bx
setne al
lea ecx, [ecx + eax*2]
mov eax, dword [esi + 4]
mov word [edi], bx
add edi, 2
dec eax
jne 0x4135a0
jmp 0x4135f8
mov edx, dword [edx + edi*8 + 4]
cmp edx, ecx
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 0x44]
je 0x4133c8
push 0
push eax
push dword [esi + 4]
push 0x2b
push dword [esi + 0xc]
push 5
push dword [0x448870]
push edx
call fcn.00439850
add esp, 0x20
mov ecx, eax
jmp 0x4133c8
mov edx, dword [esi + 4]
cmp dword [esi + 0x24], 3
mov eax, dword [esi + 0xc]
jb 0x413665
mov ebx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [ecx]
xor edx, edx
test ax, ax
setne dl
mov word [edi], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [edi + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [edi + 4], ax
lea eax, [ecx + edx*2]
movzx edx, word [ecx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
lea ecx, [eax + ecx*2]
mov word [edi + 6], dx
add edi, 8
add ebx, 0xfffffffc
jne 0x413610
mov eax, dword [esi + 0xc]
movzx ecx, word [eax]
test cx, cx
je 0x413693
add eax, 2
mov edx, dword [esi + 0x80]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x413680
jmp 0x413699
mov edx, dword [esi + 0x80]
mov word [edi], 0
mov eax, dword [edx]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442a64]
push eax
call fcn.004090f0
add esp, 4
jmp dword [0x442a70]
jmp dword [0x442a70]
mov eax, dword [esi + 0xb8]
mov edx, dword [eax]
xor eax, eax
mov dword [esi + 0x30], edx
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x4136d0
lea ecx, [edx + eax]
dec ecx
mov edi, edx
not edi
and edi, ecx
add eax, edx
neg eax
and eax, edx
sub edi, eax
lea eax, [edx + edi]
mov dword [esi + 4], eax
xor ebx, ebx
mov dword [esi + 0x34], edi
test edi, edi
jle 0x413742
cmp byte [edx], 0
mov edx, dword [esi + 4]
je 0x413742
xor ebx, ebx
mov edi, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push edi
call fcn.0040ed80
mov edx, dword [esi + 4]
add esp, 0xc
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x413742
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413710
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413750
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x9c]
mov dword [eax], ecx
mov dword [esi + 0x10], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
cmp eax, ecx
jbe 0x4137c0
cmp dword [esi + 0x34], 0
mov ebx, dword [esi + 0x30]
mov edi, dword [esi + 4]
jle 0x4137c0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4137c0
lea eax, [esi + 0x10]
push eax
push edi
push ebx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 0xc]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x24]
mov dword [esi + 0xc], ecx
jae 0x4137c0
add ebx, eax
cmp ebx, edi
jb 0x413790
mov eax, dword [esi + 0xc]
mov word [eax], 0
mov ecx, dword [esi + 0x98]
push 1
call fcn.004097f0
mov eax, dword [esi + 0xd4]
mov dword [eax], 0
mov eax, dword [esi + 0xb8]
mov edx, dword [eax]
xor eax, eax
nop
nop
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x4137f0
lea ecx, [edx + eax]
dec ecx
mov edi, edx
not edi
and edi, ecx
add eax, edx
neg eax
and eax, edx
sub edi, eax
lea eax, [edx + edi]
mov dword [esi + 4], eax
xor ebx, ebx
mov dword [esi + 0x34], edi
test edi, edi
mov dword [esi + 0x30], edx
jle 0x413862
cmp byte [edx], 0
mov edx, dword [esi + 4]
je 0x413862
xor ebx, ebx
mov edi, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push edi
call fcn.0040ed80
mov edx, dword [esi + 4]
add esp, 0xc
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x413862
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413830
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413870
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x9c]
mov dword [eax], ecx
mov dword [esi + 0x10], 0
lea eax, [ecx + ebx*2]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x24], eax
cmp eax, ecx
jbe 0x4138e0
cmp dword [esi + 0x34], 0
mov ebx, dword [esi + 0x30]
mov edi, dword [esi + 4]
jle 0x4138e0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4138e0
lea eax, [esi + 0x10]
push eax
push edi
push ebx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 0xc]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x24]
mov dword [esi + 0xc], ecx
jae 0x4138e0
add ebx, eax
cmp ebx, edi
jb 0x4138b0
mov eax, dword [esi + 0xc]
mov word [eax], 0
mov ecx, dword [esi + 0x98]
push 1
call fcn.004097f0
mov eax, dword [esi + 0xd4]
mov dword [eax], 0
jmp dword [0x442954]
mov edx, dword [esi + 0x48]
mov word [edx], 0x100c
mov byte [edx + 2], 0xa4
mov dword [edx + 3], 0
mov dword [edx + 7], 0
mov dword [edx + 0xb], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xe
ja 0x413975
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
mov edx, dword [esi + 0x48]
movzx edx, byte [edx + ecx]
lea ecx, [eax + 0x46b0f745]
add eax, 0x45
or eax, ecx
and eax, edx
or ecx, edx
mov edx, dword [esi + 0x48]
sub ecx, eax
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
add al, 0x1d
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xf
jb 0x413940
push 3
push edx
push dword [esi + 4]
call fcn.00402e00
add esp, 0xc
mov edx, dword [esi + 0x48]
mov word [edx], 0x100c
mov byte [edx + 2], 0xa4
mov dword [edx + 3], 0
mov dword [edx + 7], 0
mov dword [edx + 0xb], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xe
ja 0x4139f5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
mov edx, dword [esi + 0x48]
movzx edx, byte [edx + ecx]
lea ecx, [eax + 0x46b0f745]
add eax, 0x45
or eax, ecx
and eax, edx
or ecx, edx
mov edx, dword [esi + 0x48]
sub ecx, eax
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
add al, 0x1d
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xf
jb 0x4139c0
push 3
push edx
push dword [esi + 4]
call fcn.00402e00
add esp, 0xc
test eax, eax
sete al
jmp dword [0x4429ec]
mov dword [esi + 0x24], ebx
xor eax, eax
mov ebx, dword [esi + 0xc]
test ebx, ebx
sete al
jmp dword [eax*4 + 0x442c04]
lea eax, [ebx - 4]
mov dword [esi + 0x2c], eax
mov eax, dword [ebx - 4]
xor ecx, ecx
test eax, eax
lea eax, [eax + eax*2]
lea edi, [ebx + eax*4]
sete cl
jmp dword [ecx*4 + 0x442c0c]
push dword [esi + 0x2c]
call fcn.004090f0
add esp, 4
mov ecx, dword [esi + 4]
nop
nop
nop
jmp dword [0x442c38]
add edi, 0xfffffff4
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x442c24]
jmp dword [0x442c14]
mov eax, dword [edi - 0xc]
test eax, eax
je case.0x4134d0.126
push eax
call fcn.004090f0
add esp, 4
jmp case.0x4134d0.126
jmp dword [0x442c1c]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x413a90
push eax
call fcn.004090f0
add esp, 4
jmp 0x413a90
movzx eax, al
jmp dword [eax*4 + 0x4429f4]
mov edx, dword [esi + 0x1b0]
mov word [edx], 0xb95f
mov dword [edx + 2], 0
mov dword [edx + 6], 0
mov dword [edx + 0xa], 0
mov word [edx + 0xe], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xf
ja 0x413b15
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edx + ecx]
add eax, 0x4175af67
xor eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x2f
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x10
jb 0x413af0
push edx
push dword [esi + 4]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x144]
mov dword [ecx], eax
mov edi, dword [esi + 0x1ac]
mov word [edi], 0x6dfc
mov dword [edi + 0xa], 0
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xd
ja 0x413b9e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add eax, 0x32
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0xc7985c32
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 0xa1
and eax, 0x21
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xe
jb 0x413b60
push edi
push dword [esi + 4]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x140]
mov dword [ecx], eax
mov edi, dword [esi + 0x1a8]
mov word [edi], 0xc16d
mov word [edi + 0xa], 0
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x413c11
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax - 0x7676c4a0]
and edx, ecx
add eax, ecx
add eax, 0x89893b60
add edx, edx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x60
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x413be0
push edi
push dword [esi + 4]
call fcn.004029b0
add esp, 8
mov ecx, dword [esi + 0xbc]
mov dword [ecx], eax
mov edi, dword [esi + 0x1a4]
mov word [edi], 0x18c
mov word [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 7
ja 0x413c81
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x14b352b]
and edx, ecx
add eax, ecx
add eax, 0x14b352b
add edx, edx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xd3
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 8
jb 0x413c50
push edi
push dword [esi + 4]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x13c]
mov dword [ecx], eax
mov edi, dword [esi + 0x194]
mov word [edi], 0xd17a
mov word [edi + 0xa], 0
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x413d01
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0xe3]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x16596ee3
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xcb
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x413cd0
push edi
push dword [esi + 4]
call fcn.00402870
add esp, 8
fnstcw word [esi + 0x6a]
movzx eax, word [esi + 0x6a]
or eax, 0xc00
mov word [esi + 0xe6], ax
fldcw word [esi + 0xe6]
fistp dword [esi + 0x1cc]
fldcw word [esi + 0x6a]
mov eax, dword [esi + 0x1cc]
mov dword [ebx], eax
mov ebx, dword [esi + 0x190]
mov word [ebx], 0xc
mov byte [ebx + 2], 0x94
mov dword [ebx + 6], 0
mov dword [ebx + 3], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 9
ja 0x413da6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
add eax, 0xd54bc96d
mov edx, eax
and edx, ecx
mov edi, eax
xor edi, ecx
or eax, ecx
xor eax, edi
lea ecx, [edi + edx*2]
add eax, edx
sub ecx, eax
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
add al, 5
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xa
jb 0x413d70
push ebx
push dword [esi + 4]
call fcn.00402870
add esp, 8
fnstcw word [esi + 0x68]
movzx eax, word [esi + 0x68]
or eax, 0xc00
mov word [esi + 0xe4], ax
fldcw word [esi + 0xe4]
fistp dword [esi + 0x1c8]
fldcw word [esi + 0x68]
mov eax, dword [esi + 0x1c8]
mov ecx, dword [esi + 0xc0]
mov dword [ecx], eax
mov eax, dword [esi + 0x144]
mov ebx, dword [eax]
xor eax, eax
nop
nop
nop
nop
cmp byte [ebx + eax], 0
lea eax, [eax + 1]
jne 0x413df0
lea ecx, [ebx + eax]
dec ecx
mov edx, ebx
not edx
mov dword [esi + 0xc], edx
and ecx, edx
add eax, ebx
neg eax
and eax, ebx
sub ecx, eax
mov eax, ecx
inc eax
mov dword [esi + 0x24], ecx
lea eax, [ecx + ecx + 2]
jns 0x413e1f
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov edx, dword [esi + 0x94]
mov dword [edx], eax
mov ecx, dword [esi + 0x24]
mov edi, ecx
and edi, 1
xor ecx, 1
lea edi, [ecx + edi*2]
lea ecx, [eax - 2]
test ebx, ebx
mov dword [esi + 4], eax
jne 0x413e73
mov dword [esi + 0x2c], edi
xor edx, edx
nop
nop
nop
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x413e50
lea edi, [edx - 1]
and edi, dword [esi + 0xc]
neg edx
and edx, ebx
sub edi, edx
mov dword [esi + 0x24], edi
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0x2c]
mov dword [esi + 0x10], 0
lea ecx, [ecx + edi*2]
mov dword [esi + 0xc], ecx
cmp ecx, eax
jbe 0x413ecc
mov edi, dword [esi + 0x24]
test edi, edi
jle 0x413ecc
add edi, ebx
nop
nop
nop
cmp byte [ebx], 0
je 0x413ecc
lea eax, [esi + 0x10]
push eax
push edi
push ebx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 4]
mov word [edx], cx
add edx, 2
mov dword [esi + 4], edx
cmp edx, dword [esi + 0xc]
jae 0x413ec6
add ebx, eax
cmp ebx, edi
mov edx, dword [esi + 0x94]
jb 0x413e90
jmp 0x413ecc
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 4]
mov word [eax], 0
mov edi, dword [edx]
mov ebx, dword [esi + 0x88]
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov ecx, ebx
push edi
call fcn.00437e80
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4429fc]
push 2
push dword [esi + 0x8c]
push ebx
call fcn.00402e00
add esp, 0xc
push 2
push dword [esi + 0x8c]
push ebx
call fcn.00402e00
add esp, 0xc
jmp dword [0x4429d0]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x28]
mov al, 1
jmp dword [ecx*4 + 0x4429d4]
mov eax, dword [esi + 0xb0]
mov ebx, dword [eax]
mov eax, edi
sub eax, ebx
mov ecx, 0xffffffff
cmp eax, 0xfffffffe
jl 0x413f5c
add eax, 2
mov ecx, eax
push ecx
call fcn.004090e0
add esp, 4
mov ecx, dword [esi + 0x58]
mov dword [ecx], eax
push eax
push ebx
call fcn.00434630
add esp, 8
jmp dword [0x442a78]
mov eax, dword [esi + 0xb0]
mov ebx, dword [eax]
mov eax, edi
sub eax, ebx
mov ecx, 0xffffffff
cmp eax, 0xfffffffe
jl 0x413f95
add eax, 2
mov ecx, eax
push ecx
call fcn.004090e0
add esp, 4
mov ecx, dword [esi + 0x58]
mov dword [ecx], eax
push eax
push ebx
call fcn.00434630
add esp, 8
jmp case.0x4134d0.21
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x442a7c]
push ebx
call fcn.004090f0
add esp, 4
mov eax, dword [esi + 0x13c]
mov edx, dword [eax]
xor eax, eax
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x413fd0
lea ecx, [edx + eax]
dec ecx
mov edi, edx
not edi
and edi, ecx
add eax, edx
neg eax
and eax, edx
sub edi, eax
lea eax, [edx + edi]
mov dword [esi + 4], eax
xor ebx, ebx
mov dword [esi + 0x2c], edi
test edi, edi
mov dword [esi + 0x24], edx
jle 0x414042
cmp byte [edx], 0
mov edx, dword [esi + 4]
je 0x414042
xor ebx, ebx
mov edi, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push edi
call fcn.0040ed80
mov edx, dword [esi + 4]
add esp, 0xc
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
lea ecx, [edi + eax]
cmp ecx, edx
jae 0x414042
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x414010
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x414050
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x90]
mov dword [eax], edx
mov dword [esi + 0x10], 0
lea eax, [edx + ebx*2]
mov dword [esi + 0xc], eax
cmp eax, edx
jbe 0x4140c3
cmp dword [esi + 0x2c], 0
mov ebx, dword [esi + 0x24]
mov edi, dword [esi + 4]
jle 0x4140c3
mov ecx, dword [esi + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4140c6
lea eax, [esi + 0x10]
push eax
push edi
push ebx
mov dword [esi + 4], edx
call fcn.0040ed80
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0xc]
jae 0x4140c3
add ebx, eax
cmp ebx, edi
mov ecx, dword [esi + 0x3c]
jb 0x414090
jmp 0x4140c6
mov ecx, dword [esi + 0x3c]
mov word [edx], 0
push 1
call fcn.004097f0
xor edi, edi
mov eax, dword [esi + 0xbc]
mov ecx, dword [esi + 0xb4]
jmp 0x412a20
mov dword [esi + 4], ecx
push dword [esi + 0x24]
push dword [esi + 0xc]
push ecx
mov eax, dword [esi + 0xa4]
push dword [eax]
push edi
call fcn.00419710
add esp, 0x14
mov ecx, edi
call fcn.0040a150
mov ecx, dword [esi + 4]
mov dword [esi + 4], ecx
mov eax, dword [esi + 0xa4]
mov ebx, dword [eax]
push dword [esi + 0x24]
push dword [esi + 0xc]
push ecx
push ebx
push edi
call fcn.00419710
add esp, 0x14
mov ecx, edi
call fcn.0040a150
mov ecx, dword [esi + 4]
jmp dword [0x442c00]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [ebp + 8]
call fcn.00402ad0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push eax
mov dword [esi + 0x50], esp
push eax
mov dword [esi + 0x2c], esp
push eax
mov dword [esi + 0x38], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xe4], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xec], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xd8], eax
mov esp, eax
push eax
mov dword [esi + 0x14c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xd4], eax
mov esp, eax
push eax
mov dword [esi + 0x48], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xd0], eax
mov esp, eax
push eax
mov dword [esi + 0xdc], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xcc], eax
mov esp, eax
push eax
sub esp, 0x3fc
mov dword [esi + 0x8c], esp
push eax
mov dword [esi + 0x20], esp
push eax
mov dword [esi + 0x34], esp
push eax
mov dword [esi + 0x30], esp
push eax
mov dword [esi + 0xe0], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc8], eax
mov esp, eax
push eax
mov dword [esi + 0xc4], esp
push eax
mov dword [esi + 0x44], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x148], eax
mov esp, eax
push eax
sub esp, 0x3c
mov dword [esi + 0x7c], esp
sub esp, 0x60
mov dword [esi + 0xc0], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xb8], eax
mov esp, eax
push eax
mov dword [esi + 0x78], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x6c], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x84], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa8], eax
mov esp, eax
push eax
mov dword [esi + 0x80], esp
push eax
mov dword [esi + 0x68], esp
push eax
mov dword [esi + 0x64], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xb4], eax
mov esp, eax
push eax
mov dword [esi + 0x60], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x88], eax
mov esp, eax
push eax
mov dword [esi + 0xb0], esp
push eax
mov dword [esi + 0x3c], esp
push eax
mov dword [esi + 0x5c], esp
sub esp, 0x14
mov dword [esi + 0x74], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x4c], eax
mov esp, eax
push eax
mov dword [esi + 0x40], esp
sub esp, 0x44
mov dword [esi + 0xac], esp
sub esp, 0x10
mov dword [esi + 0xa0], esp
push eax
mov dword [esi + 0xbc], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa4], eax
mov esp, eax
push eax
sub esp, 0xc
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
sub esp, 0x44
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
sub esp, 0x40
mov dword [esi + 0x70], esp
sub esp, 0x10
mov dword [esi + 0x9c], esp
push dword [ebp + 8]
call fcn.00402ad0
mov ecx, dword [esi + 0x50]
add esp, 4
mov dword [ecx], eax
jmp dword [0x442ca0]
mov dword [esi + 0x94], ebx
mov dword [esi + 0x58], edi
xor ecx, ecx
test eax, eax
sete cl
xor ebx, ebx
jmp dword [ecx*4 + 0x442ca4]
mov eax, dword [esi + 0xac]
add eax, 4
mov dword [esi + 0x110], eax
mov eax, dword [esi + 0x70]
add eax, 4
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0x7c]
add eax, 2
mov dword [esi + 0x128], eax
mov edx, dword [esi + 0x74]
mov eax, edx
add eax, 2
mov dword [esi + 0x100], eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0xc], 0
mov dword [eax], ebx
mov eax, dword [esi + 0xe4]
add eax, 2
mov dword [esi + 0x144], eax
mov eax, dword [esi + 0xd8]
lea eax, [eax + 2]
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0xd4]
lea eax, [eax + 2]
mov dword [esi + 0x140], eax
mov eax, dword [esi + 0xd0]
lea eax, [eax + 3]
mov dword [esi + 0x13c], eax
mov eax, dword [esi + 0xcc]
lea eax, [eax + 2]
mov dword [esi + 0x138], eax
mov eax, dword [esi + 0xc8]
lea eax, [eax + 2]
mov dword [esi + 0x134], eax
mov eax, dword [esi + 0xb8]
lea ecx, [eax + 0x10]
mov dword [esi + 0x12c], ecx
mov ecx, dword [esi + 0x6c]
lea ecx, [ecx + 0xa]
mov dword [esi + 0x98], ecx
mov ecx, dword [esi + 0x84]
lea ecx, [ecx + 0xa]
mov dword [esi + 0xfc], ecx
mov ecx, dword [esi + 0xa8]
lea ecx, [ecx + 0xa]
mov dword [esi + 0xf0], ecx
mov ecx, dword [esi + 0xb4]
lea ecx, [ecx + 3]
mov dword [esi + 0x120], ecx
mov ecx, dword [esi + 0x88]
lea ecx, [ecx + 3]
mov dword [esi + 0x11c], ecx
mov ecx, dword [esi + 0x4c]
lea ecx, [ecx + 0x10]
mov dword [esi + 0x118], ecx
lea ecx, [edx + 0x10]
mov dword [esi + 0x114], ecx
mov ecx, dword [esi + 0x58]
lea edx, [ecx + 4]
mov dword [esi + 0x108], edx
mov edx, dword [esi + 0x94]
lea edi, [edx + 0x3a]
mov dword [esi + 0x104], edi
add eax, 2
mov dword [esi + 0x124], eax
lea eax, [edx + 2]
mov dword [esi + 0xf8], eax
lea eax, [ecx + 2]
mov dword [esi + 0xf4], eax
mov ebx, dword [esi + 0x50]
jmp dword [0x442cac]
push dword [ebx]
call fcn.00402f20
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [ebx]
push edi
call fcn.00402f20
add esp, 4
jmp dword [0x442cb4]
xor ecx, ecx
mov edx, dword [esi + 0xc]
cmp edx, eax
setb cl
jmp dword [ecx*4 + 0x442cbc]
push edx
push edi
call fcn.00402f30
add esp, 8
mov ecx, dword [esi + 0x38]
mov dword [ecx], eax
mov ebx, dword [esi + 0xe4]
mov word [ebx], 0x55dd
mov ecx, dword [esi + 0x144]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov word [ecx + 8], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0xb
ja 0x414573
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
lea edi, [ecx + 0xd]
add ecx, edx
and edi, edx
add edi, edi
sub ecx, edi
add ecx, 0x1fe30b0d
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
add cl, 0xa5
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
mov ecx, dword [esi + 4]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
cmp ecx, 0xc
jb 0x414530
push 2
push ebx
push eax
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x442cc4]
mov edx, dword [esi + 0xec]
mov word [edx], 0xf9cc
mov byte [edx + 2], 0x64
mov dword [edx + 7], 0
mov dword [edx + 3], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
ja 0x4145fa
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x5df4b491]
add eax, 0x91
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xec]
mov eax, dword [esi + 0x10]
add al, 9
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x4145c0
push 3
push edx
mov eax, dword [esi + 0x38]
push dword [eax]
call fcn.00402e00
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0xd8]
jmp dword [ecx*4 + 0x442ccc]
movzx eax, bl
jmp dword [eax*4 + 0x442ce4]
mov ebx, dword [esi + 0xd4]
mov word [ebx], 0xd55d
mov eax, dword [esi + 0x140]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
mov edi, dword [esi + 0x14c]
ja 0x414697
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + ecx]
add edx, 0x19e80a9d
add eax, 0x19e80a9d
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0xb5
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x414660
push ebx
mov eax, dword [esi + 0x38]
push dword [eax]
call fcn.00402730
add esp, 8
mov dword [edi], eax
mov ebx, dword [esi + 0xd0]
mov word [ebx], 0xb1a6
mov byte [ebx + 2], 0xa
mov eax, dword [esi + 0x13c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 7], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xd
ja 0x41472f
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + edx]
add ecx, 0x33c7072a
add eax, 0x33c7072a
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 0xd9
and eax, 0x59
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xe
jb 0x4146e0
push ebx
mov eax, dword [esi + 0x38]
push dword [eax]
call fcn.00402870
add esp, 8
fnstcw word [esi + 0x56]
movzx eax, word [esi + 0x56]
or eax, 0xc00
mov word [esi + 0x92], ax
fldcw word [esi + 0x92]
fistp dword [esi + 0x154]
fldcw word [esi + 0x56]
mov eax, dword [esi + 0x154]
mov ecx, dword [esi + 0x48]
mov dword [ecx], eax
mov ebx, dword [esi + 0xcc]
mov word [ebx], 0x51f9
mov eax, dword [esi + 0x138]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xd
ja 0x4147d6
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0xf3]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xc6af9f3
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x5b
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xe
jb 0x4147a0
push ebx
mov eax, dword [esi + 0x38]
push dword [eax]
call fcn.00402870
add esp, 8
fnstcw word [esi + 0x54]
movzx eax, word [esi + 0x54]
or eax, 0xc00
mov word [esi + 0x90], ax
fldcw word [esi + 0x90]
fistp dword [esi + 0x150]
fldcw word [esi + 0x54]
mov ecx, dword [esi + 0x150]
mov eax, dword [esi + 0xdc]
mov dword [esi + 0x28], ecx
mov dword [eax], ecx
mov ebx, dword [edi]
xor eax, eax
nop
nop
nop
nop
nop
cmp byte [ebx + eax], 0
lea eax, [eax + 1]
jne 0x414820
lea ecx, [ebx + eax]
dec ecx
mov edi, ebx
not edi
and edi, ecx
add eax, ebx
neg eax
and eax, ebx
sub edi, eax
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 0x8c]
test edi, edi
jle 0x41489b
add edi, ebx
mov dword [esi + 0x24], 0
mov ecx, dword [esi + 0x8c]
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41489b
lea eax, [esi + 0x10]
push eax
push edi
push ebx
mov dword [esi + 0xc], ecx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 0xc]
mov word [edx], cx
mov ecx, dword [esi + 0xc]
add ecx, 2
mov edx, dword [esi + 0x24]
cmp edx, 0x3fd
ja 0x41489b
add ebx, eax
inc edx
mov dword [esi + 0x24], edx
cmp ebx, edi
jb 0x414860
mov word [ecx], 0
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov eax, dword [esi + 0x34]
mov dword [eax], 0
push dword [esi + 0xe0]
push dword [esi + 0x30]
push dword [esi + 0x8c]
call fcn.0040bfe0
add esp, 0xc
movzx eax, al
mov edi, dword [esi + 0x2c]
jmp dword [eax*4 + 0x442cec]
mov eax, dword [edi]
inc eax
mov dword [esi + 0xc], eax
mov dword [edi], eax
mov ebx, dword [esi + 0x50]
jmp dword [0x442cac]
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax]
inc ecx
mov dword [esi + 0xc], ecx
mov dword [eax], ecx
mov ebx, dword [esi + 0x50]
jmp dword [0x442cac]
jmp dword [0x442cd8]
mov word [edi], 0xde9
mov eax, dword [esi + 0xe8]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x414965
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
add eax, 0xdc1b56d6
xor eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 0x25
and eax, 0x25
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x414930
push 3
push edi
mov eax, dword [esi + 0x38]
push dword [eax]
call fcn.00402e00
add esp, 0xc
jmp case.0x414617.3
push 3
push edi
mov eax, dword [esi + 0x38]
push dword [eax]
call fcn.00402e00
add esp, 0xc
test eax, eax
sete bl
jmp dword [0x442ce0]
mov word [edi], 0xde9
mov eax, dword [esi + 0xe8]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x414980
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
add eax, 0xdc1b56d6
xor eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 0x25
and eax, 0x25
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x4149d0
jmp 0x414980
xor eax, eax
cmp dword [esi + 0x28], 0
sete al
jmp dword [eax*4 + 0x442cf4]
mov edi, dword [esi + 0xc8]
mov word [edi], 0xd7c
mov eax, dword [esi + 0x134]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xf
ja 0x414a97
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0x1fb7ff02
add eax, 0x1fb7ff02
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0xf2
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x10
jb 0x414a60
push edi
mov eax, dword [esi + 0x38]
push dword [eax]
call fcn.00402730
add esp, 8
mov edx, eax
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x442cfc]
mov edi, dword [esi + 0x148]
mov dword [edi], 0xdc5c5958
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x414b13
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x4c]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x24c87c4c
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xec
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x414ae0
mov eax, dword [edi]
push dword [eax + 0x14]
call fcn.004096a0
add esp, 4
call fcn.004096b0
and eax, 0xf
or eax, 0x10
xor ebx, ebx
xor ecx, ecx
mov dword [esi + 0xc], eax
cmp ebx, eax
setb cl
mov edi, dword [esi + 0x7c]
jmp dword [ecx*4 + 0x442d0c]
call fcn.004096b0
mov ecx, eax
mov edx, 0x38e38e39
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov word [edi], ax
add edi, 2
mov eax, ebx
and eax, 1
xor ebx, 1
lea ebx, [ebx + eax*2]
xor eax, eax
cmp ebx, dword [esi + 0xc]
setb al
jmp dword [eax*4 + 0x442d0c]
mov word [edi], 0
mov edi, dword [esi + 0xb8]
mov dword [edi], 0x3ac0179
mov dword [edi + 4], 0x1f4b1d5d
mov dword [edi + 8], 0x1b67194e
mov dword [edi + 0xc], 0x171415be
mov eax, dword [esi + 0x12c]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x14
ja 0x414c17
nop
nop
nop
mov ecx, dword [esi + 4]
mov eax, dword [esi + 4]
movzx eax, byte [edi + eax]
mov edx, 0xfb9ce8d4
sub edx, ecx
add ecx, 0x2b
and ecx, eax
or edx, eax
not edx
add edx, eax
sub edx, ecx
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0xd3
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x15
jb 0x414be0
movzx eax, word [edi]
mov ebx, dword [esi + 0xc0]
mov edi, ebx
test ax, ax
mov edx, dword [esi + 0x7c]
je 0x414c51
mov ecx, dword [esi + 0x124]
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414c40
mov word [edi], 0
movzx eax, word [edx]
test ax, ax
je 0x414da1
mov ecx, dword [esi + 0x128]
mov edx, dword [esi + 0x78]
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414c70
jmp 0x414da4
mov ecx, edx
mov dword [esi + 0x24], edx
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x414c90
mov ecx, edx
not ecx
and ecx, eax
not eax
and eax, edx
sub ecx, eax
add edx, ecx
xor edi, edi
mov dword [esi + 0x130], ecx
test ecx, ecx
mov dword [esi + 0xc], edx
jle 0x414d02
mov eax, dword [esi + 0x24]
cmp byte [eax], 0
je 0x414d02
xor edi, edi
mov ebx, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edx
push ebx
call fcn.0040ed80
mov edx, dword [esi + 0xc]
add esp, 0xc
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
lea ecx, [ebx + eax]
cmp ecx, edx
jae 0x414d02
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x414cd0
mov eax, dword [esi + 0xc4]
mov dword [eax], edi
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x414d18
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x20]
mov dword [eax], edx
mov dword [esi + 0x10], 0
lea eax, [edx + edi*2]
mov dword [esi + 0x28], eax
cmp eax, edx
jbe 0x414ef2
cmp dword [esi + 0x130], 0
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0xc]
jle 0x414ef5
mov ebx, dword [esi + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x414ef5
lea ecx, [esi + 0x10]
push ecx
push eax
push ebx
mov dword [esi + 0x24], edx
call fcn.0040ed80
mov edx, dword [esi + 0x24]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x28]
jae 0x414ef2
add ebx, eax
mov eax, dword [esi + 0xc]
cmp ebx, eax
mov ecx, dword [esi + 0x44]
jb 0x414d60
jmp 0x414ef5
mov edx, dword [esi + 0x78]
mov word [edi], 0
sub edi, ebx
sar edi, 1
push edx
push 0
push 0
push edi
push ebx
push 0
mov ebx, edx
call dword [0x448864]
mov ebx, dword [ebx]
mov eax, ebx
add eax, 4
lea eax, [ebx + ebx + 8]
jns 0x414dd0
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
push dword [esi + 0x78]
push ebx
push eax
push edi
push dword [esi + 0xc0]
push 0
call dword [0x448864]
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442d14]
xor ecx, ecx
cmp eax, 1
sete cl
jmp dword [ecx*4 + 0x442d2c]
xor ecx, ecx
cmp eax, 2
sete cl
mov ebx, dword [esi + 0x20]
mov edi, dword [esi + 0xa8]
jmp dword [ecx*4 + 0x442d34]
mov dword [edi], 0x4b3a4d7e
mov dword [edi + 4], 0x57674937
mov word [edi + 8], 0x5554
mov eax, dword [esi + 0xf0]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x13
ja 0x414ea7
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0xfe93794a
add eax, 0xfe93794a
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0xfa
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x14
jb 0x414e70
mov eax, dword [ebx]
add eax, 0xfffffffe
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414eb0
movzx ecx, word [edi]
test cx, cx
je 0x415033
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x414ed0
jmp 0x415031
mov ebx, dword [esi + 0x20]
mov edi, dword [esi + 0x6c]
jmp dword [0x442d20]
mov ecx, dword [esi + 0x44]
mov word [edx], 0
mov eax, dword [esi + 0x20]
mov ebx, dword [eax]
push ecx
push 0
push 0
push edi
push ebx
push 0
mov edi, ecx
call dword [0x448864]
mov edi, dword [edi]
lea eax, [edi + edi]
test edi, edi
jns 0x414f1e
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
push dword [esi + 0x44]
push edi
mov edi, eax
push eax
mov eax, dword [esi + 0xc4]
push dword [eax]
push ebx
push 0
call dword [0x448864]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x442d04]
push ebx
call fcn.004090f0
add esp, 4
mov ebx, dword [esi + 0x20]
mov dword [ebx], edi
jmp case.0x4134d0.203
mov edi, dword [esi + 0x84]
mov dword [edi], 0xab06adfe
mov dword [edi + 4], 0x9702a93c
mov word [edi + 8], 0x9594
mov eax, dword [esi + 0xfc]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x12
mov ebx, dword [esi + 0x20]
ja 0x414ff2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
lea ecx, [eax - 0x760838e6]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
add ecx, edi
mov edi, dword [esi + 0x84]
neg ecx
add eax, ecx
add eax, 0x89f7c719
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x4a
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x13
jb 0x414fb0
mov eax, dword [ebx]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x415000
movzx ecx, word [edi]
test cx, cx
je 0x415033
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x415020
add eax, edx
mov word [eax], 0
jmp case.0x414b3a.7
mov eax, dword [esi + 0x80]
mov edi, dword [esi + 0x68]
push 0x80
push 0x60
push 5
push 0
push 0x100002
push eax
push dword [ebx]
call fcn.0043be70
add esp, 0x1c
mov dword [edi], eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442d4c]
push 0
mov eax, dword [esi + 0xe0]
push dword [eax]
mov eax, dword [esi + 0x30]
push dword [eax]
mov edi, dword [esi + 0x80]
push dword [edi]
call fcn.0043c710
add esp, 0x10
mov ecx, dword [esi + 0x68]
mov dword [ecx], eax
mov eax, dword [edi]
mov dword [esi + 0x10], 0xd2d1d0d7
lea ecx, [esi + 0x14]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 9
ja 0x41510a
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x10]
lea edi, [ecx + edx]
add edi, 0x4ae6fa3
add ecx, 0x4ae6fa3
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
mov edx, ecx
or edx, 0x8a
and ecx, 0x8a
add ecx, edx
inc cl
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x10], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xa
jb 0x4150c0
mov ecx, dword [0x448868]
test ecx, ecx
je case.0x4134d0.204
mov edx, dword [esi + 0x10]
xor edi, edi
mov ebx, dword [0x44886c]
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x415130
inc edi
cmp ecx, edi
jne 0x415120
jmp case.0x4134d0.204
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x4134d0.204
push eax
push 1
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x10
mov edi, dword [esi + 0x30]
push dword [edi]
call fcn.00437dc0
add esp, 4
mov dword [edi], 0
mov eax, dword [esi + 0x68]
mov ecx, dword [eax]
not ecx
shr ecx, 0x1f
xor eax, eax
jmp dword [ecx*4 + 0x442d54]
xor ecx, ecx
mov eax, dword [esi + 0x48]
cmp dword [eax], 1
sete cl
mov eax, 1
jmp dword [ecx*4 + 0x442d5c]
mov edi, dword [esi + 0x2c]
jmp dword [eax*4 + 0x442d8c]
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x442d94]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x442d9c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x442da4]
mov ebx, dword [esi + 0x20]
mov ecx, dword [ebx]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4151d0
mov ecx, eax
sar ecx, 1
and eax, 0x3a
xor ecx, 0x1d
lea edx, [ecx + eax]
inc edx
add ecx, eax
lea eax, [ecx + ecx]
add eax, 2
test edx, edx
mov edi, dword [esi + 0x34]
jns 0x4151fd
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov dword [edi], eax
mov edx, dword [esi + 0x58]
mov dword [edx], 0xeb1415f0
mov eax, dword [esi + 0x108]
mov dword [eax], 0
mov dword [eax + 3], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
ja 0x415295
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x2ed8127d]
mov edi, 0xd127ed82
sub edi, eax
and edx, ecx
or edi, ecx
add ecx, eax
add ecx, 0x2ed8127d
add edi, eax
lea eax, [edx + edi]
add eax, 0x2ed8127e
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov edx, dword [esi + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x95
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x415240
mov eax, dword [ebx]
mov ebx, dword [esi + 0x94]
mov dword [ebx], 0xa331a136
mov dword [ebx + 4], 0x9f039d2b
mov dword [ebx + 8], 0x9b15990c
mov dword [ebx + 0xc], 0x970b9502
mov dword [ebx + 0x10], 0x93049102
mov dword [ebx + 0x14], 0x8fdb8df2
mov dword [ebx + 0x18], 0x8b008911
mov dword [ebx + 0x1c], 0x87198515
mov dword [ebx + 0x20], 0x832281e6
mov dword [ebx + 0x24], 0xff6cfd09
mov dword [ebx + 0x28], 0xfb75f95d
mov dword [ebx + 0x2c], 0xf794f577
mov dword [ebx + 0x30], 0xf36ef1a1
mov dword [ebx + 0x34], 0xef8eed92
mov word [ebx + 0x38], 0xe9ee
mov ecx, dword [esi + 0x104]
mov byte [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x46
ja 0x415390
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
lea edi, [ecx + 0x6aa1ab1b]
and edi, edx
add ecx, edx
add ecx, 0x6aa1ab1b
add edi, edi
sub ecx, edi
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
mov edx, ecx
xor edx, 0x42
and ecx, 0x42
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
mov ecx, dword [esi + 4]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
cmp ecx, 0x47
jb 0x415340
mov ecx, dword [esi + 0x34]
mov ecx, dword [ecx]
movzx edx, word [ebx]
test dx, dx
je 0x415d3a
mov edi, dword [esi + 0xf8]
mov ebx, dword [esi + 0x70]
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x4153b0
jmp 0x415d3d
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442dac]
xor eax, eax
mov ecx, dword [esi + 0xdc]
cmp dword [ecx], 0
sete al
mov edi, dword [esi + 0x2c]
jmp dword [eax*4 + 0x442db4]
jmp dword [0x442dd0]
push 0xa013361e
push dword [0x44885c]
call fcn.0043b390
add esp, 8
push 0
push 0
mov ebx, dword [esi + 0x30]
push dword [ebx]
push 0x41df30
push 0
push 0
call eax
mov ecx, dword [esi + 0xbc]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442dd4]
mov eax, dword [ebx]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x20]
jmp dword [ecx*4 + 0x442de4]
push eax
call fcn.00437dc0
add esp, 4
mov eax, dword [ebx]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442dec]
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442df4]
mov ecx, dword [esi + 0xa4]
mov dword [ecx + 4], 0xffffffff
mov dword [ecx], 0xb8797400
mov dword [esi + 0x10], 0xd2d1d0d7
lea ecx, [esi + 0x14]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 9
ja 0x4154fa
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x10]
lea edi, [ecx + edx]
add edi, 0x4ae6fa3
add ecx, 0x4ae6fa3
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
mov edx, ecx
or edx, 0x8a
and ecx, 0x8a
add ecx, edx
inc cl
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x10], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xa
jb 0x4154b0
mov ecx, dword [0x448868]
test ecx, ecx
je 0x415c4b
mov edx, dword [esi + 0x10]
xor edi, edi
mov ebx, dword [0x44886c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xb33e16a3
je 0x415c29
inc edi
cmp ecx, edi
jne 0x415520
jmp 0x415c4b
mov eax, dword [esi + 0x48]
mov dword [eax], 0
mov edi, dword [esi + 0xb4]
mov word [edi], 0x272c
mov byte [edi + 2], 0x94
mov eax, dword [esi + 0x120]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xd
ja 0x4155bd
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edx, eax
and edx, 0x2fc9533d
xor eax, 0x2fc9533d
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x55
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xe
jb 0x415580
push edi
mov edi, dword [esi + 0x38]
push dword [edi]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x64]
mov dword [ecx], eax
mov edx, dword [esi + 0x88]
mov word [edx], 0xdbed
mov byte [edx + 2], 0x42
mov eax, dword [esi + 0x11c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
mov ebx, dword [esi + 0x20]
ja 0x415657
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x675f088a]
add eax, 0x76
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x88]
mov eax, dword [esi + 0x10]
mov ecx, eax
or ecx, 0xc5
and eax, 0xc5
add eax, ecx
inc al
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x415610
push edx
push dword [edi]
call fcn.00402730
add esp, 8
mov ecx, dword [esi + 0x60]
mov dword [ecx], eax
mov ecx, dword [ebx]
mov edx, 0xfffffffe
nop
nop
cmp word [ecx + edx + 2], 0
lea edx, [edx + 2]
jne case.default.0x415691
sar edx, 1
mov ecx, dword [esi + 0xb0]
mov dword [ecx], edx
mov ecx, dword [esi + 0x64]
mov ecx, dword [ecx]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x442d64]
xor ecx, ecx
mov edx, dword [esi + 0x3c]
mov dword [edx], ecx
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x5c]
jmp dword [ecx*4 + 0x442d6c]
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
inc edx
cmp byte [ecx], 0
jne 0x4156c0
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub edx, ecx
mov eax, edx
and eax, 1
xor edx, 1
lea eax, [edx + eax*2]
jmp 0x4157ed
mov eax, dword [esi + 0x110]
mov dword [eax + 0x3c], 0
mov dword [eax + 0x38], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov ebx, dword [esi + 0xac]
mov dword [ebx], 0x44
push 0xd3a7a30
push dword [0x44885c]
call fcn.0043b390
add esp, 8
push dword [esi + 0xa0]
push ebx
push 0
push 0
push 0
push 0
push 0
push 0
mov ecx, dword [esi + 0x34]
push dword [ecx]
mov ebx, dword [esi + 0x20]
push dword [ebx]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442dbc]
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442de4]
mov edi, ecx
nop
nop
nop
nop
nop
nop
mov edx, edi
inc edi
cmp byte [edx], 0
jne case.default.0x4157e4
mov edi, ecx
not edi
and edi, edx
not edx
and edx, ecx
sub edi, edx
inc edi
mov ecx, dword [esi + 0x3c]
mov dword [ecx], edi
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x5c]
jmp dword [ecx*4 + 0x442d6c]
xor eax, eax
mov dword [edi], eax
mov ecx, dword [esi + 0x4c]
mov dword [ecx], 0x33c731c2
mov dword [ecx + 4], 0x37d235ca
mov dword [ecx + 8], 0xcb36c934
mov dword [ecx + 0xc], 0xcffccdff
mov word [ecx + 0x10], 0xc1c0
mov dword [ecx + 0x16], 0
mov dword [ecx + 0x12], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x19
ja 0x41587e
mov eax, dword [esi + 4]
lea ecx, [eax - 0x76957108]
lea edx, [eax + 0xf8]
mov edi, ecx
and edi, edx
xor ecx, edx
mov edx, dword [esi + 4]
mov ebx, dword [esi + 0x4c]
movzx edx, byte [ebx + edx]
and edi, edx
and ecx, edx
add eax, edx
add eax, 0x896a8ef8
lea ecx, [ecx + edi*2]
sub eax, ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x38
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x4c]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0x4c]
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x1a
jb 0x415830
mov eax, ecx
mov edx, dword [esi + 0x74]
mov edi, edx
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0x118]
mov edi, dword [esi + 0x114]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4158b0
sar eax, 1
mov ecx, dword [esi + 0x5c]
mov ecx, dword [ecx]
mov edx, dword [esi + 0xb0]
add eax, dword [edx]
mov edx, dword [esi + 0x3c]
add eax, dword [edx]
lea edx, [eax + ecx]
add ecx, eax
add ecx, 2
lea eax, [edx + edx]
add eax, 4
test ecx, ecx
mov edi, dword [esi + 0x34]
mov ebx, dword [esi + 0x20]
jns 0x4158ec
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov dword [edi], eax
mov ecx, dword [esi + 0x74]
movzx ecx, word [ecx]
test cx, cx
je 0x4159e7
mov edx, dword [esi + 0x100]
mov edi, dword [esi + 0x40]
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x415910
jmp 0x4159ea
mov eax, dword [esi + 0xa0]
mov eax, dword [eax]
mov dword [esi + 0x10], 0xd2d1d0d7
lea ecx, [esi + 0x14]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 9
ja 0x4159aa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x10]
lea edi, [ecx + edx]
add edi, 0x4ae6fa3
add ecx, 0x4ae6fa3
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
mov edx, ecx
or edx, 0x8a
and ecx, 0x8a
add ecx, edx
inc cl
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x10], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xa
jb 0x415960
mov ecx, dword [0x448868]
test ecx, ecx
je case.0x415169.20
mov edx, dword [esi + 0x10]
xor edi, edi
mov ebx, dword [0x44886c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x415f00
inc edi
cmp ecx, edi
jne 0x4159d0
jmp case.0x415169.20
mov edi, dword [esi + 0x40]
mov word [eax], 0x20
lea ecx, [eax + 4]
mov dword [edi], ecx
mov word [eax + 2], 0x22
mov eax, dword [ebx]
movzx edx, word [eax]
test dx, dx
je 0x415a21
lea edi, [eax + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x415a10
lea edx, [ecx + 2]
mov edi, dword [esi + 0x40]
mov dword [edi], edx
mov word [ecx], 0x22
jmp dword [0x442d74]
push eax
call fcn.004090f0
add esp, 4
mov dword [ebx], 0
mov eax, dword [esi + 0x64]
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
setne al
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x3c]
jmp dword [eax*4 + 0x442d7c]
mov eax, dword [edi]
lea ecx, [eax + 2]
mov dword [esi + 0x28], ecx
mov dword [edi], ecx
mov word [eax], 0x2c
mov edi, dword [edx]
xor edx, edx
nop
cmp byte [ebx + edx], 0
lea edx, [edx + 1]
jne 0x415a70
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 0x28]
mov dword [esi + 0xc], ecx
mov ecx, edi
mov dword [esi + 0x24], edi
cmp edi, 2
jl 0x415aee
lea edi, [ebx + edx]
dec edi
mov ecx, ebx
not ecx
and ecx, edi
add edx, ebx
neg edx
and edx, ebx
sub ecx, edx
mov edx, dword [esi + 0x28]
mov dword [esi + 0xc], edx
test ecx, ecx
jle 0x415aee
mov edi, ecx
add edi, ebx
mov edx, dword [esi + 0x24]
lea eax, [eax + edx*2]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0xc], eax
nop
cmp byte [ebx], 0
je 0x415aee
lea eax, [esi + 0x10]
push eax
push edi
push ebx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 0xc]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x24]
mov dword [esi + 0xc], edx
jae 0x415aee
add ebx, eax
cmp ebx, edi
jb 0x415ac0
mov edx, dword [esi + 0xc]
mov word [edx], 0
mov ecx, dword [esi + 0x28]
mov eax, ecx
not eax
and eax, edx
add eax, eax
xor edx, ecx
sub eax, edx
add eax, ecx
mov edi, dword [esi + 0x40]
mov dword [edi], eax
mov eax, dword [esi + 0x60]
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x442d84]
mov eax, dword [edi]
lea ecx, [eax + 2]
mov dword [esi + 0x28], ecx
mov dword [edi], ecx
mov word [eax], 0x2c
mov ecx, dword [esi + 0x5c]
mov edi, dword [ecx]
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + edx], 0
lea edx, [edx + 1]
jne 0x415b40
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 0x28]
mov dword [esi + 0xc], ecx
mov ecx, edi
mov dword [esi + 0x24], edi
cmp edi, 2
jl 0x415bbe
lea edi, [ebx + edx]
dec edi
mov ecx, ebx
not ecx
and ecx, edi
add edx, ebx
neg edx
and edx, ebx
sub ecx, edx
mov edx, dword [esi + 0x28]
mov dword [esi + 0xc], edx
test ecx, ecx
jle 0x415bbe
mov edi, ecx
add edi, ebx
mov edx, dword [esi + 0x24]
lea eax, [eax + edx*2]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0xc], eax
nop
cmp byte [ebx], 0
je 0x415bbe
lea eax, [esi + 0x10]
push eax
push edi
push ebx
call fcn.0040ed80
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 0xc]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x24]
mov dword [esi + 0xc], edx
jae 0x415bbe
add ebx, eax
cmp ebx, edi
jb 0x415b90
mov edx, dword [esi + 0xc]
mov word [edx], 0
mov ecx, dword [esi + 0x28]
mov eax, ecx
not eax
and eax, edx
add eax, eax
xor edx, ecx
sub eax, edx
add eax, ecx
mov ecx, dword [esi + 0x40]
mov dword [ecx], eax
mov eax, 1
mov edi, dword [esi + 0x2c]
jmp dword [eax*4 + 0x442d8c]
mov dword [ebx], 0
mov eax, dword [esi + 0x64]
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
setne al
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x3c]
jmp dword [eax*4 + 0x442d7c]
mov ebx, dword [ecx]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x442d84]
mov eax, 1
mov edi, dword [esi + 0x2c]
jmp dword [eax*4 + 0x442d8c]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x415c4b
push dword [esi + 0xa4]
push 0
push eax
push 3
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x18
mov eax, dword [esi + 0xbc]
mov eax, dword [eax]
mov dword [esi + 0x10], 0xd2d1d0d7
lea ecx, [esi + 0x14]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 9
ja 0x415cca
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x10]
lea edi, [ecx + edx]
add edi, 0x4ae6fa3
add ecx, 0x4ae6fa3
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
mov edx, ecx
or edx, 0x8a
and ecx, 0x8a
add ecx, edx
inc cl
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x10], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xa
jb 0x415c80
mov ecx, dword [0x448868]
test ecx, ecx
je case.0x415169.20
mov edx, dword [esi + 0x10]
xor edi, edi
mov ebx, dword [0x44886c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x415d03
inc edi
cmp ecx, edi
jne 0x415cf0
jmp case.0x415169.20
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x415169.20
push eax
push 1
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x10
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x20]
jmp dword [ecx*4 + 0x442de4]
mov ebx, dword [esi + 0x70]
mov word [ecx], 0
movzx edx, word [eax]
test dx, dx
je 0x415d63
add eax, 2
mov edi, dword [esi + 0x34]
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x415d50
jmp 0x415d66
mov edi, dword [esi + 0x34]
mov word [ecx], 0
mov eax, dword [esi + 0x58]
movzx eax, word [eax]
test ax, ax
je 0x415d91
mov edx, dword [esi + 0xf4]
nop
nop
nop
nop
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x415d80
mov word [ecx], 0
mov eax, dword [esi + 0x10c]
mov dword [eax + 0x3c], 0
mov dword [eax + 0x38], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [ebx], 0x44
push 0xd3a7a30
push dword [0x44885c]
call fcn.0043b390
add esp, 8
push dword [esi + 0x9c]
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [edi]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442ddc]
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
mov dword [esi + 0x10], 0xd2d1d0d7
lea ecx, [esi + 0x14]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 9
ja 0x415eca
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x10]
lea edi, [ecx + edx]
add edi, 0x4ae6fa3
add ecx, 0x4ae6fa3
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
mov edx, ecx
or edx, 0x8a
and ecx, 0x8a
add ecx, edx
inc cl
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x10], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xa
jb 0x415e80
mov ecx, dword [0x448868]
test ecx, ecx
je case.0x415169.34
mov edx, dword [esi + 0x10]
xor edi, edi
mov ebx, dword [0x44886c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x415f6b
inc edi
cmp ecx, edi
jne 0x415ef0
jmp case.0x415169.34
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x415f8c
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x20]
jmp dword [ecx*4 + 0x442de4]
mov eax, dword [ebx]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442dec]
push eax
call fcn.004090f0
add esp, 4
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442df4]
push eax
call fcn.004090f0
add esp, 4
mov eax, dword [edi]
inc eax
mov dword [esi + 0xc], eax
mov dword [edi], eax
mov ebx, dword [esi + 0x50]
jmp dword [0x442cac]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x415fb7
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x20]
jmp dword [ecx*4 + 0x442de4]
push eax
push 1
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x10
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x20]
jmp dword [ecx*4 + 0x442de4]
push eax
push 1
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x10
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x20]
jmp dword [ecx*4 + 0x442de4]
mov eax, dword [case.0x4134d0.203]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [edi], 0xcb77cdbe
mov dword [edi + 4], 0xc77bc940
mov word [edi + 8], 0xc5c4
mov eax, dword [esi + 0x98]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x17
ja 0x41607f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
lea ecx, [eax + 0x2b3efe2]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
add ecx, edi
mov edi, dword [esi + 0x6c]
neg ecx
add eax, ecx
add eax, 0x2b3efe1
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xd2
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x18
jb 0x416040
mov eax, dword [ebx]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x416090
movzx ecx, word [edi]
test cx, cx
je 0x4160c3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x4160b0
add eax, edx
mov word [eax], 0
jmp dword [0x442d28]
mov dword [edi], 0xcb77cdbe
mov dword [edi + 4], 0xc77bc940
mov word [edi + 8], 0xc5c4
mov eax, dword [esi + 0x98]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x17
ja 0x41614f
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
lea ecx, [eax + 0x2b3efe2]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
add ecx, edi
mov edi, dword [esi + 0x6c]
neg ecx
add eax, ecx
add eax, 0x2b3efe1
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xd2
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x18
jb 0x416110
mov eax, dword [ebx]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x416160
movzx ecx, word [edi]
test cx, cx
je 0x416193
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edi + edx + 2]
add edx, 2
test cx, cx
jne 0x416180
add eax, edx
mov word [eax], 0
jmp case.0x414b3a.5
mov eax, dword [case.0x4134d0.163]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov bl, 1
jmp eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3