Function at 0x414e87
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf0
mov eax, dword [0x440b44]
mov dword [esp + 0xd0], 0x43073b78
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0xdc], 0
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0x30]
cmp ecx, 0xc
ja 0x40ef6f
nop
nop
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x30]
movzx edx, byte [esp + edx + 0xd0]
mov esi, 0x34
sub esi, ecx
add ecx, edx
not edx
or esi, edx
lea ecx, [ecx + esi*2]
add ecx, 0x894e80cd
mov dword [esp + 0x2e0], ecx
mov ecx, dword [esp + 0x2e0]
add cl, 0x73
mov edx, dword [esp + 0x30]
mov byte [esp + edx + 0xd0], cl
inc dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
cmp ecx, 0xd
jb 0x40ef20
mov edx, dword [str.LPnhqo___retrighe]
mov dword [esp + 0x2e0], 0x346c5ca5
mov dword [esp + 0x2e4], 0x64595a68
mov dword [esp + 0x2e8], 0x6c515668
mov dword [esp + 0x2ec], 0x54616055
mov dword [esp + 0x2f0], 0x7d0e4e6f
mov dword [esp + 0x2f4], 0x3b237f4d
mov dword [esp + 0x2f8], 0x7f063130
mov dword [esp + 0x2fc], 0xe72b4179
mov byte [esp + 0x300], 0
mov dword [esp + 0x260], 0
mov ecx, dword [esp + 0x260]
cmp ecx, 0x20
ja 0x40f047
nop
nop
nop
nop
mov ecx, dword [esp + 0x260]
mov esi, dword [esp + 0x260]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [ecx + esi]
add edi, 0x9fabb4ff
add ecx, 0x9fabb4ff
and ecx, esi
add ecx, ecx
sub edi, ecx
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x30]
add cl, 7
mov esi, dword [esp + 0x260]
mov byte [esp + esi + 0x2e0], cl
inc dword [esp + 0x260]
mov ecx, dword [esp + 0x260]
cmp ecx, 0x21
jb 0x40eff0
movzx ebx, byte [esp + 0x2e0]
lea ecx, [esp + 0x260]
test bl, bl
je 0x40f07b
lea esi, [esp + 0x2e1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], bl
inc ecx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40f070
mov byte [ecx], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40f09b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], bl
inc ecx
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40f090
mov byte [ecx], 0
movzx edx, byte [esp + 0xd0]
test dl, dl
je 0x40f0cb
lea esi, [esp + 0xd1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40f0c0
mov byte [ecx], 0
movzx edx, byte [eax]
test dl, dl
je 0x40f0eb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x40f0e0
mov byte [ecx], 0
lea eax, [esp + 0x260]
mov esi, ecx
xor esi, eax
mov edx, eax
not edx
and edx, ecx
add edx, edx
mov dword [esp + 0x2e0], 0x4bc55513
mov dword [esp + 0x2e4], 0x4fdc49d8
mov dword [esp + 0x2e8], 0x43de4dd5
mov dword [esp + 0x2ec], 0x471341d6
mov dword [esp + 0x2f0], 0x7bcb4532
mov dword [esp + 0x2f4], 0x7fe379ea
mov dword [esp + 0x2f8], 0x735c7d30
mov dword [esp + 0x2fc], 0x77e07115
mov dword [esp + 0x300], 0x6be875e6
mov dword [esp + 0x304], 0x6f0d69f5
mov dword [esp + 0x308], 0x63f86d09
mov dword [esp + 0x30c], 0x67f161fd
mov dword [esp + 0x310], 0x9b3565f4
mov dword [esp + 0x314], 0x9fcb9912
mov dword [esp + 0x318], 0x93159d17
mov dword [esp + 0x31c], 0x97c3911b
mov dword [esp + 0x320], 0x8b05950c
mov dword [esp + 0x324], 0x8f1b891c
mov dword [esp + 0x328], 0x83078ddd
mov dword [esp + 0x32c], 0x871c8114
mov dword [esp + 0x330], 0xbb16851d
mov dword [esp + 0x334], 0xbf29b9df
mov dword [esp + 0x338], 0xb327bdda
mov dword [esp + 0x33c], 0xb783b1d6
mov dword [esp + 0x340], 0xabb4b588
mov dword [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0x30]
cmp ecx, 0x6b
ja 0x40f28d
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x30]
movzx edi, byte [esp + edi + 0x2e0]
lea ebx, [ecx - 0x65e93c33]
and ebx, edi
add ecx, edi
add ecx, 0x9a16c3cd
add ebx, ebx
sub ecx, ebx
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0xd0]
add cl, 0x65
mov edi, dword [esp + 0x30]
mov byte [esp + edi + 0x2e0], cl
inc dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
cmp ecx, 0x6c
jb 0x40f240
sub edx, esi
mov dword [esp + 0xd0], 0xab43a597
mov dword [esp + 0xd4], 0xaf47a95a
mov word [esp + 0xd8], 0xadae
mov dword [esp + 0xda], 0
mov dword [esp + 0xde], 0
mov dword [esp + 0xe2], 0
mov dword [esp + 0x1d0], 0
mov ecx, dword [esp + 0x1d0]
cmp ecx, 0x15
ja 0x40f346
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x1d0]
mov esi, dword [esp + 0x1d0]
movzx esi, byte [esp + esi + 0xd0]
lea edi, [ecx + 0x6ef59ae5]
and edi, esi
add ecx, esi
add ecx, 0x6ef59ae5
add edi, edi
sub ecx, edi
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
add cl, 0xbd
mov esi, dword [esp + 0x1d0]
mov byte [esp + esi + 0xd0], cl
inc dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1d0]
cmp ecx, 0x16
jb 0x40f2f0
lea ecx, [esp + 0xcc]
lea esi, [esp + 0x2c]
lea edi, [esp + 0x2e0]
lea ebx, [esp + 0xd0]
push ecx
push esi
push edx
push eax
push edi
push ebx
push 0x44638c
call fcn.0040c3c0
add esp, 0x1c
movzx eax, al
xor esi, esi
jmp dword [eax*4 + 0x441764]
push 0x104
lea eax, [esp + 0x2e4]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ebx, dword [esp + 0xcc]
mov edi, dword [esp + 0x2c]
jmp dword [0x44176c]
push esi
call fcn.00408ce0
add esp, 4
push edi
call fcn.00402870
add esp, 4
mov ebx, eax
mov word [esp + 0x2e0], 0xccf6
mov byte [esp + 0x2e2], 0x62
mov dword [esp + 0x2e3], 0
mov word [esp + 0x2e7], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 8
ja 0x40f437
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0x6a14f550]
add eax, 0x50
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0xd0
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 9
jb 0x40f3f0
lea esi, [esp + 0x2e0]
push esi
push ebx
call fcn.004028e0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x44179c]
xor eax, eax
movzx eax, al
jmp dword [eax*4 + 0x4417a4]
push edi
call fcn.00402ad0
add esp, 4
xor eax, eax
jmp case.0x40f377.11
mov dword [esp + 0x2e0], 0x1b5a5958
mov dword [esp + 0x2e4], 0
mov word [esp + 0x2e8], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 9
ja 0x40f506
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + ecx]
add edx, 0x29786bcc
add eax, 0x29786bcc
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0x6c
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xa
jb 0x40f4b0
push dword [esp + 0x2e0]
call fcn.00433050
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x4417a4]
mov word [esp + 0x2e0], 0xc9c9
mov byte [esp + 0x2e2], 0x64
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov byte [esp + 0x2eb], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xb
ja 0x40f5ab
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0xd1]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xc676ffd1
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0x49
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xc
jb 0x40f560
push esi
push ebx
call fcn.004028e0
add esp, 8
mov dword [esp + 0xbc], eax
mov word [esp + 0x2e0], 0xa0b3
mov byte [esp + 0x2e2], 0x4a
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov dword [esp + 0x2eb], 0
mov byte [esp + 0x2ef], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xf
ja 0x40f65c
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + ecx]
add eax, 0x8a
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xa8392f8a
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x3a
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0x10
jb 0x40f610
push esi
push ebx
call fcn.004028e0
add esp, 8
mov esi, eax
mov dword [esp + 0xc4], ebx
push ebx
call fcn.00410450
add esp, 4
push edi
call fcn.00402ad0
add esp, 4
lea ebx, [esp + 0x1d0]
mov ecx, ebx
push 1
call fcn.00409490
push ebx
call fcn.0041df30
add esp, 4
mov ecx, ebx
call fcn.00409e30
lea ebx, [esp + 0xc80]
mov ecx, ebx
push 3
call fcn.00409490
push ebx
call fcn.0041e720
add esp, 4
mov ecx, ebx
call fcn.00409e30
lea ebx, [esp + 0xc18]
mov ecx, ebx
push 1
call fcn.00409490
push ebx
call fcn.0041e940
add esp, 4
mov ecx, ebx
call fcn.00409e30
lea ebx, [esp + 0xbb0]
mov ecx, ebx
push 1
call fcn.00409490
push ebx
call fcn.004209b0
add esp, 4
push ebx
call fcn.00421370
add esp, 4
push ebx
call fcn.00421810
add esp, 4
mov ecx, ebx
call fcn.00409e30
lea ebx, [esp + 0xb48]
mov ecx, ebx
push 1
call fcn.00409490
push ebx
call fcn.00423af0
add esp, 4
xor ebx, ebx
test esi, esi
setg bl
lea ecx, [esp + 0xb48]
call fcn.00409e30
lea esi, [esp + 0xae0]
mov ecx, esi
push 1
call fcn.00409490
push esi
call fcn.00425c00
add esp, 4
push esi
call fcn.0042e500
add esp, 4
jmp dword [ebx*4 + 0x4417ac]
push esi
call fcn.0042e6d0
add esp, 4
lea ecx, [esp + 0xae0]
call fcn.00409e30
lea eax, [esp + 0x23f]
push eax
call fcn.00433cb0
add esp, 4
mov dword [esp + 0x30], 0xf8e9f938
mov word [esp + 0x34], 0x1afe
mov byte [esp + 0x36], 0x5c
mov word [esp + 0x37], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
lea ebx, [esp + 0x2e0]
ja 0x40f7fc
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x30]
lea edx, [eax - 0x7d2d178d]
add eax, 0x73
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x2e0], edx
mov eax, dword [esp + 0x2e0]
add al, 0xdb
mov ecx, dword [esp]
mov byte [esp + ecx + 0x30], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40f7c0
mov eax, dword [0x440b44]
mov dword [esp], 0x33ffcb16
mov dword [esp + 4], 0
mov dword [esp + 7], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xa
ja 0x40f880
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx]
lea esi, [ecx + edx]
add esi, 0x635e9078
add ecx, 0x635e9078
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0x2e0], ecx
mov ecx, dword [esp + 0x2e0]
add cl, 0xb8
mov edx, dword [esp + 0x1c]
mov byte [esp + edx], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xb
jb 0x40f830
mov ecx, dword [str.LPnhqo___retrighe]
mov dword [esp + 0x2e0], 0x4e86726d
mov dword [esp + 0x2e4], 0x648a7473
mov dword [esp + 0x2e8], 0x8c8d7871
mov dword [esp + 0x2ec], 0x25637a61
mov dword [esp + 0x2f0], 0x5e946096
mov dword [esp + 0x2f4], 0x2d262b54
mov dword [esp + 0x2f8], 0x566e6c60
mov byte [esp + 0x2fc], 0x10
mov dword [esp + 0x2fd], 0
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x14]
cmp edx, 0x20
ja 0x40f942
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x14]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [edx - 0x5a1661fe]
add edx, 2
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x1c]
add dl, 0xf2
mov esi, dword [esp + 0x14]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x14]
mov edx, dword [esp + 0x14]
cmp edx, 0x21
jb 0x40f900
movzx edx, byte [esp + 0x2e0]
test dl, dl
lea edi, [esp + 0xd0]
je 0x40f97b
lea edi, [esp + 0xd0]
lea esi, [esp + 0x2e1]
nop
nop
nop
nop
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 0x40f970
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f99b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40f990
mov byte [edi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40f9bb
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40f9b0
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40f9db
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 0x40f9d0
mov byte [edi], 0
movzx eax, byte [esp + 0x30]
test al, al
je 0x40f9fb
lea ecx, [esp + 0x31]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40f9f0
mov byte [edi], 0
movzx eax, byte [esp + 0x23f]
test al, al
je 0x40fa2b
lea ecx, [esp + 0x240]
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 0x40fa20
mov byte [edi], 0
lea eax, [esp + 0xd0]
mov dword [esp + 0x2e0], 0x9b0d995b
mov dword [esp + 0x2e4], 0x871a8512
mov dword [esp + 0x2e8], 0x8314812d
mov dword [esp + 0x2ec], 0x8f5b8d10
mov dword [esp + 0x2f0], 0x8b138934
mov dword [esp + 0x2f4], 0x77db75e4
mov dword [esp + 0x2f8], 0x739271aa
mov dword [esp + 0x2fc], 0x7fee7ddd
mov dword [esp + 0x300], 0x7bee79e8
mov dword [esp + 0x304], 0x67c565cd
mov dword [esp + 0x308], 0x63fe61c1
mov dword [esp + 0x30c], 0x6ff96dc5
mov dword [esp + 0x310], 0x6bbd69fe
mov dword [esp + 0x314], 0x578355cc
mov dword [esp + 0x318], 0x53cd51cf
mov dword [esp + 0x31c], 0x5f8b5dc3
mov dword [esp + 0x320], 0x5bcd59f6
mov dword [esp + 0x324], 0x47d345d6
mov dword [esp + 0x328], 0x43df4195
mov dword [esp + 0x32c], 0x4fda4dde
mov dword [esp + 0x330], 0x4bdc49e5
mov dword [esp + 0x334], 0x37a13597
mov dword [esp + 0x338], 0x339f319c
mov dword [esp + 0x33c], 0x3fcb3d90
mov dword [esp + 0x340], 0x3b3a3932
mov dword [esp + 0x344], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x67
ja 0x40fbb9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x2e0]
lea esi, [ecx + edx]
add ecx, 0x6c
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0xf4e0e46c
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x30]
mov edx, ecx
or edx, 0xb
and ecx, 0xb
add ecx, edx
inc cl
mov edx, dword [esp]
mov byte [esp + edx + 0x2e0], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x68
jb 0x40fb70
sub edi, eax
mov dword [esp + 0x30], 0x7bdb7997
mov dword [esp + 0x34], 0x7fc77dca
mov word [esp + 0x38], 0x717e
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3d], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x10
ja 0x40fc42
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 0x30]
add ecx, 0xec927b0f
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x97
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 0x30], cl
mov ecx, dword [esp + 0x1c]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x11
jb 0x40fc00
lea ecx, [esp + 0xc8]
lea edx, [esp + 0xc0]
lea esi, [esp + 0x30]
push ecx
push edx
push edi
push eax
push ebx
push esi
push 0x44638c
call fcn.0040c3c0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4417b4]
xor esi, esi
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x4417bc]
mov ecx, dword [esp + 0xc8]
mov edi, dword [esp + 0xc0]
mov edx, ecx
and edx, 3
mov eax, ecx
or eax, 3
imul eax, edx
xor edx, 3
mov esi, ecx
and esi, 0xfffffffc
imul esi, edx
add eax, esi
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x40fcbb
cmp edx, 0x2e
jne 0x40fcbc
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x40fccb
cmp ecx, 0x2e
jne 0x40fccc
dec eax
push eax
call fcn.00408cd0
add esp, 4
mov esi, eax
push eax
push edi
call fcn.00434260
add esp, 8
push dword [esp + 0xc0]
call fcn.004379b0
add esp, 4
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x4417bc]
mov eax, dword [case.0x40fcf7.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
push esi
call fcn.00401ec0
add esp, 4
mov ebx, eax
mov eax, dword [case.0x40fcf7.9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x4417e4]
push esi
call fcn.00408ce0
add esp, 4
push ebx
call fcn.004138a0
add esp, 4
push ebx
call fcn.00402ad0
add esp, 4
lea ebx, [esp + 0x2e0]
mov dword [esp + 0x2e0], 0x9b353b34
mov dword [esp + 0x2e4], 0
mov byte [esp + 0x2e8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40fdd7
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax - 0x629d4494]
lea esi, [eax + 0x6c]
or edx, esi
and esi, ecx
and edx, ecx
add edx, esi
add eax, ecx
add eax, 0x9d62bb6c
sub eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0xc
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40fd90
push ebx
push dword [esp + 0xc8]
call fcn.004028e0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4417ec]
xor eax, eax
cmp dword [esp + 0xbc], 0
setg al
jmp dword [eax*4 + 0x4417f4]
lea ecx, [esp + 0x2e0]
push 1
call fcn.00409490
mov eax, 0xffffffff
nop
nop
nop
nop
cmp byte [eax + 0x446695], 0
lea eax, [eax + 1]
jne 0x40fe20
mov dword [esp + 0x30], 0xf8caceaa
mov dword [esp + 0x34], 0xf7fcb3cb
mov word [esp + 0x38], 0x6df2
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3d], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x10
ja 0x40fec6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + edx]
add esi, 0xdb883111
add ecx, 0x11
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
mov edx, ecx
or edx, 0x88
and ecx, 0x88
add ecx, edx
inc cl
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x11
jb 0x40fe70
lea esi, [esp + 0x2e0]
mov ecx, esi
push eax
push 0x446694
lea eax, [esp + 0x38]
push eax
call fcn.00409690
mov ecx, esi
call fcn.00409e30
mov ecx, esi
call fcn.004094d0
xor eax, eax
cmp dword [esp + 0xbc], 0
setg al
jmp dword [eax*4 + 0x4417f4]
push 0
call fcn.0043af30
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4417fc]
mov dword [esp + 0x30], 0xc377c56b
mov dword [esp + 0x34], 0xcfb2c16e
mov dword [esp + 0x38], 0xcb74cd65
mov dword [esp + 0x3c], 0xd7a8c961
mov dword [esp + 0x40], 0xd369d5b8
mov dword [esp + 0x44], 0xdf7fd16e
mov dword [esp + 0x48], 0xdb60dd60
mov dword [esp + 0x4c], 0x27a9d9ba
mov dword [esp + 0x50], 0x23932595
mov dword [esp + 0x54], 0x2f402190
mov dword [esp + 0x58], 0x2b9f2d83
mov dword [esp + 0x5c], 0x375a2986
mov dword [esp + 0x60], 0x338c359d
mov dword [esp + 0x64], 0x3f503199
mov dword [esp + 0x68], 0x3b4d3d50
mov dword [esp + 0x6c], 0x7583997
mov dword [esp + 0x70], 0x3b305ba
mov dword [esp + 0x74], 0xfab01b1
mov dword [esp + 0x78], 0xbb70dbf
mov dword [esp + 0x7c], 0x176809b6
mov dword [esp + 0x80], 0x13a81567
mov dword [esp + 0x84], 0x1f6d1172
mov dword [esp + 0x88], 0x1b6d1d7e
mov dword [esp + 0x8c], 0x67a919a8
mov dword [esp + 0x90], 0x63da65c8
mov dword [esp + 0x94], 0x6fcf61c9
mov dword [esp + 0x98], 0x6b0c6ddb
mov dword [esp + 0x9c], 0x77086900
mov dword [esp + 0xa0], 0x73df75da
mov dword [esp + 0xa4], 0x7f1071c6
mov dword [esp + 0xa8], 0x7b7c7d10
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x83
ja 0x4100a5
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0x780ee61]
and esi, edx
add ecx, edx
add ecx, 0x780ee61
add esi, esi
sub ecx, esi
mov dword [esp + 0x2e0], ecx
mov ecx, dword [esp + 0x2e0]
add cl, 0x59
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x84
jb 0x410060
movzx ecx, word [esp + 0x30]
test cx, cx
je 0x4100d1
lea ebx, [esp + 0x2e0]
lea edx, [esp + 0x32]
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4100c0
mov word [ebx], 0
movzx ecx, word [eax]
test cx, cx
je 0x410101
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x4100f0
mov dword [ebx], 0x220022
mov dword [ebx + 4], 0x22
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 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], 0x44
mov dword [esp + 0x5c], 1
push 0xd3a7a30
push dword [0x447694]
call fcn.0043b060
add esp, 8
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x2e0]
push ecx
lea ecx, [esp + 0x34]
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 + 0x441804]
mov eax, dword [esp + 0x1c]
mov dword [esp], 0x32353437
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0xf
ja 0x41024d
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx]
lea esi, [ecx + 0x6ccf36a9]
add ecx, 0xa9
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x14]
add cl, 0x61
mov edx, dword [esp + 0x18]
mov byte [esp + edx], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x10
jb 0x410210
mov ecx, dword [0x4476a0]
test ecx, ecx
je case.0x40fefa.4
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x4476a4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x410280
inc esi
cmp ecx, esi
jne 0x410270
jmp case.0x40fefa.4
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x40fefa.4
push eax
push 1
push dword [0x4476a8]
push ecx
call fcn.00439650
add esp, 0x10
mov eax, dword [case.0x40fefa.0]
nop
jmp eax
jmp dword [0x44181c]
mov ecx, ebx
and ecx, 3
mov eax, ebx
or eax, 3
imul eax, ecx
xor ecx, 3
mov edx, ebx
and edx, 0xfffffffc
imul edx, ecx
add eax, edx
shr eax, 2
movzx ecx, byte [ebx + edi - 1]
cmp ecx, 0x3d
je 0x4102d4
cmp ecx, 0x2e
jne 0x4102d5
dec eax
movzx ecx, byte [ebx + edi - 2]
cmp ecx, 0x3d
je 0x4102e4
cmp ecx, 0x2e
jne 0x4102e5
dec eax
push eax
call fcn.00408cd0
add esp, 4
push eax
push dword [esp + 0x30]
call fcn.00434260
add esp, 8
push dword [esp + 0x2c]
call fcn.004379b0
add esp, 4
mov ecx, ebx
and ecx, 3
mov eax, ebx
or eax, 3
imul eax, ecx
xor ecx, 3
mov edx, ebx
and edx, 0xfffffffc
imul edx, ecx
add eax, edx
shr eax, 2
movzx ecx, byte [ebx + edi - 1]
cmp ecx, 0x3d
je 0x410333
cmp ecx, 0x2e
jne 0x410334
dec eax
movzx ecx, byte [ebx + edi - 2]
cmp ecx, 0x3d
je 0x410343
cmp ecx, 0x2e
jne 0x410344
dec eax
push eax
call fcn.00408cd0
add esp, 4
mov esi, eax
push eax
push dword [esp + 0x30]
call fcn.00434260
add esp, 8
push dword [esp + 0x2c]
call fcn.004379b0
add esp, 4
jmp dword [0x441778]
mov eax, dword [case.0x40f377.9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ebx, ebx
test esi, esi
sete bl
xor eax, eax
jmp dword [ebx*4 + 0x44178c]
push esi
call fcn.00401ec0
add esp, 4
mov edi, eax
jmp dword [ebx*4 + 0x441794]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0xae0]
call fcn.004094d0
lea ecx, [esp + 0xb48]
call fcn.004094d0
lea ecx, [esp + 0xbb0]
call fcn.004094d0
lea ecx, [esp + 0xc18]
call fcn.004094d0
lea ecx, [esp + 0xc80]
call fcn.004094d0
lea ecx, [esp + 0x1d0]
call fcn.004094d0
lea ecx, [esp + 0xae0]
call fcn.004094d0
lea ecx, [esp + 0xb48]
call fcn.004094d0
lea ecx, [esp + 0xbb0]
call fcn.004094d0
lea ecx, [esp + 0xc18]
call fcn.004094d0
lea ecx, [esp + 0xc80]
call fcn.004094d0
lea ecx, [esp + 0x1d0]
call fcn.004094d0
mov al, 1
jmp dword [0x441828]
xor ebx, ebx
mov dword [esp + 0x2c], esi
nop
nop
push esi
call fcn.00402a90
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x441834]
push ebx
push esi
call fcn.00402aa0
add esp, 8
mov edi, eax
mov word [esp + 0x68], 0x41ca
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov dword [esp + 0x72], 0
mov byte [esp + 0x76], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x41059e
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax - 0x7600675]
add eax, 0x8b
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x33
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x410560
push 3
lea eax, [esp + 0x6c]
push eax
push edi
call fcn.00402a40
add esp, 0xc
jmp dword [0x441840]
jmp dword [0x441848]
jmp dword [0x441848]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44184c]
mov eax, dword [case.0x40fcf7.40]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov word [esp + 0x68], 0x45d2
mov dword [esp + 0x6e], 0
mov dword [esp + 0x6a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x410660
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
mov edx, eax
and edx, 0xf2fe40f5
xor eax, 0x72fe40f5
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
mov ecx, edx
not ecx
and ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x4d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x410610
lea eax, [esp + 0x68]
push eax
push edi
call fcn.00402840
add esp, 8
fnstcw word [esp + 0xe2]
movzx eax, word [esp + 0xe2]
or eax, 0xc00
mov word [esp + 0x14a], ax
fldcw word [esp + 0x14a]
fistp dword [esp + 0x160]
fldcw word [esp + 0xe2]
mov eax, dword [esp + 0x160]
xor ecx, ecx
cmp eax, 2
setl cl
mov dword [esp + 0x54], ebx
jmp dword [ecx*4 + 0x441864]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x44186c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x441874]
mov word [esp + 0x58], 0x4dd7
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0xe8]
cmp eax, 7
ja 0x41076e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe8]
movzx ecx, byte [esp + ecx + 0x58]
mov edx, eax
and edx, 0xda290cf6
xor eax, 0xda290cf6
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
add al, 0x46
mov ecx, dword [esp + 0xe8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 0xe8]
mov eax, dword [esp + 0xe8]
cmp eax, 8
jb 0x410710
push 2
lea eax, [esp + 0x5c]
push eax
push edi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x44192c]
mov word [esp + 0x68], 0x7996
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov word [esp + 0x72], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x4107fc
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0x2bf0892f]
add eax, 0x2f
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xb7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4107c0
push 2
lea eax, [esp + 0x6c]
push eax
push edi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x441934]
mov word [esp + 0xe8], 0x19ed
mov dword [esp + 0xea], 0
mov dword [esp + 0xed], 0
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x40]
cmp eax, 8
ja 0x410894
nop
nop
nop
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
movzx ecx, byte [esp + ecx + 0xe8]
lea edx, [eax + ecx]
add edx, 0x657417d4
add eax, 0x657417d4
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp], edx
mov eax, dword [esp]
add al, 0x34
mov ecx, dword [esp + 0x40]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x40]
mov eax, dword [esp + 0x40]
cmp eax, 9
jb 0x410850
push 5
lea eax, [esp + 0xec]
push eax
push edi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x44193c]
mov word [esp], 0xcd4a
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0xd
ja 0x410937
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx]
lea edx, [eax + 0x137a2]
lea esi, [eax + 0xa2]
or edx, esi
and esi, ecx
and edx, ecx
add edx, esi
add eax, ecx
add eax, 0x137a2
sub eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x92
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0xe
jb 0x4108f0
push 2
lea eax, [esp + 4]
push eax
push edi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x2c]
mov dl, 1
jmp dword [ecx*4 + 0x441944]
mov dword [esp + 0x18], edi
mov word [esp + 0x38], 0x65ca
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 7
ja 0x4109e7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
movzx esi, byte [esp + eax + 0x38]
lea eax, [edx - 0x4466956f]
mov ecx, eax
and ecx, esi
xor eax, esi
mov edi, 0x4466956e
sub edi, edx
lea ebx, [edx + 0x91]
and ebx, esi
or edi, esi
add edi, edx
add edi, ebx
sub eax, edi
lea eax, [eax + ecx*2]
add eax, 0x4466956e
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 9
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 8
jb 0x410990
push 3
lea eax, [esp + 0x3c]
push eax
mov edi, dword [esp + 0x20]
push edi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x54]
mov dl, 1
jmp dword [ecx*4 + 0x44194c]
mov word [esp + 0x40], 0xb286
mov byte [esp + 0x42], 0x2a
mov dword [esp + 0x43], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0xd8], 0
mov eax, dword [esp + 0xd8]
cmp eax, 9
ja 0x410abe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xd8]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0xda]
lea esi, [eax + ecx]
mov edi, 0xdbc3bc25
sub edi, eax
add eax, ecx
add eax, 0x243c43da
or edi, ecx
not ecx
or ecx, edx
add ecx, esi
add ecx, edi
add ecx, 0x243c43dc
mov edx, ecx
xor edx, eax
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
add al, 0xa
mov ecx, dword [esp + 0xd8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0xd8]
mov eax, dword [esp + 0xd8]
cmp eax, 0xa
jb 0x410a50
push 3
lea eax, [esp + 0x44]
push eax
mov edi, dword [esp + 0x20]
push edi
call fcn.00402a40
add esp, 0xc
mov esi, dword [esp + 0x2c]
test eax, eax
sete dl
mov eax, dword [case.0x410a0c.4]
jmp eax
movzx eax, dl
jmp dword [eax*4 + 0x441964]
mov ebx, edi
mov word [esp + 0x68], 0x85ef
mov dword [esp + 0x6e], 0
mov dword [esp + 0x6a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x410b78
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0x3669da95]
and edx, ecx
mov esi, 0xc996256a
sub esi, eax
or esi, ecx
add esi, eax
add esi, 0x3669da96
mov edi, esi
and edi, edx
xor edx, esi
add eax, ecx
add eax, 0x3669da95
lea ecx, [edx + edi*2]
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xed
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x410b20
lea eax, [esp + 0x68]
push eax
mov esi, ebx
push ebx
call fcn.004027f0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x68], 0x6d9c
mov dword [esp + 0x6a], 0
mov word [esp + 0x6e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x410bfc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax - 0x3a3c57d2]
add eax, 0x2e
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xbe
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x410bc0
lea eax, [esp + 0x68]
push eax
push esi
call fcn.004027f0
add esp, 8
mov dword [esp + 0x34], eax
mov word [esp + 0x68], 0xf919
mov dword [esp + 0x6e], 0
mov dword [esp + 0x6a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x410c7c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0xf27483f]
add eax, 0x3f
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x47
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x410c40
lea eax, [esp + 0x68]
push eax
push esi
call fcn.00402890
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x68], 0x55d8
mov dword [esp + 0x6a], 0
mov word [esp + 0x6e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x410d0d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov eax, dword [esp]
movzx esi, byte [esp + eax + 0x68]
lea eax, [edx + 0xd]
mov ecx, 0xf2
sub ecx, edx
sub ecx, esi
add edx, esi
add edx, 0xf513db0d
and eax, esi
add eax, eax
and ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xa5
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x410cc0
lea eax, [esp + 0x68]
push eax
push ebx
call fcn.004027f0
add esp, 8
mov dword [esp + 0xd4], eax
mov word [esp + 0x68], 0x45e2
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov dword [esp + 0x72], 0
mov word [esp + 0x76], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x410d9e
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax - 0x6f2c7e0b]
add eax, 0xf5
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x4d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x410d60
lea eax, [esp + 0x68]
push eax
push ebx
call fcn.00402840
add esp, 8
fnstcw word [esp + 0xe6]
movzx eax, word [esp + 0xe6]
or eax, 0xc00
mov word [esp + 0x14e], ax
fldcw word [esp + 0x14e]
fistp dword [esp + 0x154]
fldcw word [esp + 0xe6]
mov eax, dword [esp + 0x154]
mov dword [esp + 0x28], eax
mov word [esp + 0x68], 0x786c
mov byte [esp + 0x6a], 0xc4
mov dword [esp + 0x6b], 0
mov dword [esp + 0x6f], 0
mov dword [esp + 0x73], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x410e6e
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0xe1]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xf83afce1
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xd9
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0xf
jb 0x410e20
lea eax, [esp + 0x68]
push eax
push ebx
call fcn.00402840
add esp, 8
mov ebx, 0xfffffffe
xor eax, eax
mov ecx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x410e90
fnstcw word [esp + 0xe4]
movzx ecx, word [esp + 0xe4]
or ecx, 0xc00
mov word [esp + 0x14c], cx
fldcw word [esp + 0x14c]
fistp dword [esp + 0x150]
fldcw word [esp + 0xe4]
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x30], ecx
lea esi, [eax - 1]
lea ecx, [ebx + 2]
test eax, eax
jns 0x410ee8
mov ecx, 0xffffffff
push ecx
call fcn.00408cd0
add esp, 4
mov edx, eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x410f19
mov esi, ecx
not esi
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc esi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x410f10
mov dword [esp + 0x68], 0
add ebx, edx
mov edi, edx
mov dword [esp + 0x14], edx
cmp ebx, edx
jbe 0x410f81
mov edi, dword [esp + 0x14]
test esi, esi
jle 0x410f81
mov edx, ecx
add edx, esi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x410f81
lea eax, [esp + 0x68]
push eax
push edx
push ecx
mov esi, ecx
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0x68]
mov word [edi], cx
add edi, 2
cmp edi, ebx
jae 0x410f81
add esi, eax
mov edx, dword [esp + 0x18]
cmp esi, edx
mov ecx, esi
jb 0x410f50
mov word [edi], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
lea ecx, [esp + 0xe8]
mov esi, dword [esp + 0x14]
push esi
call fcn.00437aa0
jmp dword [0x44196c]
push esi
call fcn.00408ce0
add esp, 4
lea ecx, [esp + 0xe8]
push 0x400
call fcn.00437d10
not eax
shr eax, 0x1f
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x54]
jmp dword [eax*4 + 0x441974]
mov eax, dword [0x441988]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x44187c]
mov word [esp + 0x68], 0xa136
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov dword [esp + 0x72], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x411231
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + ecx]
add edx, 0x137bb
add eax, 0x137bb
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xe3
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x4111f0
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004027f0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x68], 0x55d8
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov dword [esp + 0x72], 0
mov word [esp + 0x76], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4112d3
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x68]
lea esi, [eax + 0x1b019b8d]
and esi, edx
lea ecx, [eax + edx]
add ecx, 0x1b019b8d
add eax, 0x8d
and eax, edx
add eax, esi
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x25
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411280
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004027f0
add esp, 8
xor ecx, ecx
mov edx, dword [esp + 0x1c]
test edx, edx
sete cl
mov esi, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x441a64]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441a6c]
mov dword [esp + 0x14], eax
mov ecx, edx
nop
nop
nop
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne 0x411310
mov dword [esp + 0x18], eax
mov eax, esi
sub eax, edx
xor ebx, ebx
mov dword [esp + 0x30], eax
test eax, eax
jle 0x411367
cmp byte [edx], 0
je 0x411367
xor ebx, ebx
mov edi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x68], 0
lea eax, [esp + 0x68]
push eax
push esi
push edi
call fcn.0040ed20
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x411367
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411340
mov eax, ebx
and eax, 1
mov ecx, ebx
xor ecx, 1
lea ecx, [ecx + eax*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x411380
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov dword [esp + 0x68], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
cmp ecx, eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
jbe 0x411e32
mov ebx, dword [esp + 0x28]
cmp dword [esp + 0x30], 0
jle 0x411e32
mov ebx, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x411e32
lea eax, [esp + 0x68]
push eax
push esi
push edi
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0x68]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x20]
jae 0x411e2e
add edi, eax
cmp edi, esi
mov eax, dword [esp + 0x14]
jb 0x4113d0
jmp 0x411e32
mov word [esp + 0x68], 0x21b6
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov word [esp + 0x72], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x411486
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0x777d5f7b]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x777d5f7a
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xa3
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x411440
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004027f0
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x68], 0x45d8
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov dword [esp + 0x71], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x41150d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0x35]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xfa8c0735
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x8d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x4114d0
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004027f0
add esp, 8
xor ecx, ecx
mov edi, dword [esp + 0x14]
test edi, edi
sete cl
mov esi, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x441ad4]
mov edx, eax
mov ecx, dword [case.0x41152a.4]
mov dword [esp + 0x28], eax
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441aec]
mov dword [esp + 0x1c], eax
mov ecx, edi
jmp dword [0x441af4]
jmp 0x412830
sete al
movzx eax, al
jmp dword [eax*4 + 0x441884]
mov word [esp + 0x68], 0x6d1c
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov byte [esp + 0x72], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x4115e3
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x68]
mov ecx, 0x7441cd11
sub ecx, eax
add eax, 0xee
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0xe8], ecx
mov eax, dword [esp + 0xe8]
add al, 0x7e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x4115a0
push 2
lea eax, [esp + 0x6c]
push eax
push edi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x44188c]
mov word [esp + 0x58], 0x7999
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x411681
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x58]
lea esi, [eax - 0x2209f3d1]
lea ecx, [eax + edx]
add ecx, 0xddf60c2f
and esi, edx
add eax, 0x2f
and eax, edx
add eax, esi
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xb7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x411630
push 5
lea eax, [esp + 0x5c]
push eax
push edi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x441894]
mov word [esp + 0xe8], 0xd8a
mov dword [esp + 0xee], 0
mov dword [esp + 0xea], 0
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x40]
cmp eax, 9
ja 0x41172e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
movzx ecx, byte [esp + ecx + 0xe8]
lea edx, [eax + 0xaa]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xe7748aa
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
xor ecx, 0x59
and eax, 0x59
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x40]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x40]
mov eax, dword [esp + 0x40]
cmp eax, 0xa
jb 0x4116e0
push 2
lea eax, [esp + 0xec]
push eax
push edi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44189c]
mov word [esp], 0x7982
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0xd
ja 0x4117be
nop
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx]
lea edx, [eax + ecx]
add edx, 0x137af
add eax, 0x137af
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
add al, 0x37
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0xe
jb 0x411780
push 3
lea eax, [esp + 4]
push eax
push edi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4418a4]
movzx eax, bl
mov ebx, dword [esp + 0x54]
jmp dword [eax*4 + 0x4418bc]
mov word [esp + 0x68], 0x2d5c
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov word [esp + 0x72], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x41185c
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0xffabf26]
add eax, 0x26
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xf6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x411820
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004027f0
add esp, 8
mov dword [esp + 0x30], eax
mov word [esp + 0x68], 0xdb9
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov dword [esp + 0x72], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x4118f4
nop
nop
nop
nop
mov edx, dword [esp]
mov eax, dword [esp]
movzx esi, byte [esp + eax + 0x68]
lea eax, [edx + 0x137aa]
lea ecx, [edx + esi]
add ecx, 0x137aa
add edx, 0xaa
and edx, esi
and eax, esi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x5a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x4118a0
lea eax, [esp + 0x68]
push eax
push edi
call fcn.00402890
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x68], 0x19a2
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6e], 0
mov dword [esp + 0x72], 0
mov word [esp + 0x76], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41197e
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax - 0x5d18f504]
add eax, 0xfc
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x1c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411940
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004027f0
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x68], 0x413a
mov dword [esp + 0x6a], 0
mov dword [esp + 0x6d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4119f4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
add eax, 0x7ac444cb
xor eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x73
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4119c0
lea eax, [esp + 0x68]
push eax
push edi
call fcn.00402840
add esp, 8
fnstcw word [esp + 0xe0]
movzx eax, word [esp + 0xe0]
or eax, 0xc00
mov word [esp + 0x148], ax
fldcw word [esp + 0x148]
fistp dword [esp + 0x15c]
fldcw word [esp + 0xe0]
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x34], eax
mov word [esp + 0x68], 0xecf8
mov byte [esp + 0x6a], 0x50
mov dword [esp + 0x6b], 0
mov dword [esp + 0x6f], 0
mov dword [esp + 0x73], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x411ac0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax - 0x78b614d]
and edx, ecx
add eax, ecx
add eax, 0xf8749eb3
add edx, edx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x1b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x411a80
lea eax, [esp + 0x68]
push eax
push edi
call fcn.00402840
add esp, 8
fnstcw word [esp + 0xde]
movzx eax, word [esp + 0xde]
or eax, 0xc00
mov word [esp + 0x146], ax
fldcw word [esp + 0x146]
fistp dword [esp + 0x158]
fldcw word [esp + 0xde]
mov eax, dword [esp + 0x158]
mov dword [esp + 0x64], eax
mov word [esp + 0x68], 0xadb6
mov byte [esp + 0x6a], 0xda
mov dword [esp + 0x6b], 0
mov dword [esp + 0x6f], 0
mov dword [esp + 0x73], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x411b94
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x68]
lea eax, [ecx + edx]
add eax, 0xf8497f5c
add ecx, 0xf8497f5c
mov esi, edx
not esi
or esi, ecx
add esi, edx
and ecx, edx
add ecx, esi
inc ecx
mov edx, ecx
xor edx, eax
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xe8], ecx
mov eax, dword [esp + 0xe8]
add al, 0x7c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x411b40
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004028e0
add esp, 8
mov dword [esp + 0xd4], eax
mov edi, 0xffffffff
mov eax, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + edi + 1], 0
lea edi, [edi + 1]
jne 0x411bc0
mov edx, eax
add edx, edi
xor ebx, ebx
test edi, edi
mov dword [esp + 0x18], edx
jle 0x411c1b
cmp byte [eax], 0
je 0x411c1b
xor ebx, ebx
mov esi, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x68], 0
lea eax, [esp + 0x68]
push eax
push edx
push esi
call fcn.0040ed20
mov edx, dword [esp + 0x24]
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edx
jae 0x411c1b
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x411bf0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411c29
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov dword [esp + 0x68], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x1c], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
jbe 0x412683
mov esi, dword [esp + 0xd0]
test edi, edi
jle 0x412683
mov esi, dword [esp + 0xd0]
mov dword [esp + 0x20], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x412683
lea eax, [esp + 0x68]
push eax
push edx
push ecx
mov edi, ecx
mov ebx, edx
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0x68]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x1c]
jae 0x41267f
add edi, eax
cmp edi, ebx
mov ecx, edi
mov edx, ebx
mov ebx, dword [esp + 0x20]
jb 0x411c80
jmp 0x412683
jmp dword [0x4418ac]
mov word [esp + 0x40], 0xac50
mov byte [esp + 0x42], 0x38
mov dword [esp + 0x43], 0
mov dword [esp + 0x47], 0
mov byte [esp + 0x4b], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0xb
ja 0x411d79
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0xbf2b927]
add eax, 0x27
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
mov ecx, eax
xor ecx, 0xee
and eax, 0x6e
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 0xc
jb 0x411d30
push 3
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00402a40
add esp, 0xc
jmp case.0x4117d5.2
push 3
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00402a40
add esp, 0xc
test eax, eax
sete bl
jmp dword [0x4418b8]
mov word [esp + 0x40], 0xac50
mov byte [esp + 0x42], 0x38
mov dword [esp + 0x43], 0
mov dword [esp + 0x47], 0
mov byte [esp + 0x4b], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0xb
ja 0x411d90
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0xbf2b927]
add eax, 0x27
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
mov ecx, eax
xor ecx, 0xee
and eax, 0x6e
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 0xc
jb 0x411de0
jmp 0x411d90
mov eax, dword [esp + 0x14]
mov word [ebx], 0
mov esi, 0xffffffff
nop
nop
nop
nop
cmp byte [eax + esi + 1], 0
lea esi, [esi + 1]
jne 0x411e40
add dword [esp + 0x18], esi
xor ebx, ebx
mov dword [esp + 0x20], esi
test esi, esi
jle 0x411e9b
cmp byte [eax], 0
je 0x411e9b
xor ebx, ebx
mov edi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x68], 0
lea eax, [esp + 0x68]
push eax
mov esi, dword [esp + 0x1c]
push esi
push edi
call fcn.0040ed20
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x411e9b
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411e70
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411ea9
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov dword [esp + 0x68], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], ecx
cmp ecx, eax
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jbe 0x411f1f
mov ebx, dword [esp + 0x30]
cmp dword [esp + 0x20], 0
jle 0x411f1f
mov ebx, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x411f1f
lea eax, [esp + 0x68]
push eax
push edi
push ecx
mov esi, ecx
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0x68]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x1c]
jae 0x411f1f
add esi, eax
cmp esi, edi
mov ecx, esi
jb 0x411ef0
mov word [ebx], 0
mov word [esp + 0x68], 0xdded
mov byte [esp + 0x6a], 0x44
mov dword [esp + 0x6b], 0
mov dword [esp + 0x6e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x411f91
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + ecx]
add edx, 0xab8e8335
add eax, 0xab8e8335
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x8d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x411f50
lea eax, [esp + 0x68]
push eax
push dword [ebp + 8]
call fcn.00402890
add esp, 8
xor ecx, ecx
mov dword [esp + 0x20], eax
test eax, eax
setne cl
xor edx, edx
xor edi, edi
mov ebx, dword [esp + 0x54]
jmp dword [ecx*4 + 0x441a74]
lea ecx, [esp + 0x68]
push 2
mov esi, edx
call fcn.00409490
push esi
push edi
push dword [esp + 0x38]
push dword [esp + 0x34]
lea eax, [esp + 0x78]
push eax
call fcn.00415bf0
add esp, 0x14
lea ecx, [esp + 0x68]
call fcn.00409e30
movzx eax, al
jmp dword [eax*4 + 0x441a94]
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x4a], 0
cmp eax, 0x3ff
mov edi, 0x51eb851f
ja 0x412363
mov byte [esp + 0x49], 0x30
lea esi, [esp + 0x49]
jmp 0x4123ea
push dword [esp + 0x20]
call fcn.00402a90
add esp, 4
mov ecx, eax
mov dword [esp + 0x1c], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x41204a
mov esi, eax
test dl, dl
jne 0x412050
mov ecx, esi
push ecx
call fcn.00408cd0
add esp, 4
mov edi, eax
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
add edi, 4
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441a7c]
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov dword [edi], 0
mov dword [edi + 4], 0
mov byte [edi + 8], 0
lea ecx, [edi + 0xc]
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x441a84]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x441a84]
xor esi, esi
xor eax, eax
mov edx, dword [esp + 0x1c]
cmp esi, edx
setb al
jmp dword [eax*4 + 0x441a8c]
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004028e0
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [esi + esi*2]
mov edi, dword [esp + 0x18]
lea ecx, [edi + eax*4]
push edx
push dword [esp + 0x18]
push ebx
call fcn.004155e0
inc esi
xor eax, eax
mov edx, dword [esp + 0x1c]
cmp esi, edx
setb al
mov ebx, dword [esp + 0x54]
jmp dword [eax*4 + 0x441a8c]
mov dword [esp + 0x18], edi
push esi
push dword [esp + 0x24]
call fcn.00402aa0
add esp, 8
mov edi, eax
mov word [esp + 0x68], 0xfff1
mov byte [esp + 0x6a], 0x6a
mov dword [esp + 0x6f], 0
mov dword [esp + 0x6b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x4121ab
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax - 0x586ddc6e]
add eax, 0x92
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x412160
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004027f0
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x68], 0xcbb9
mov byte [esp + 0x6a], 0x40
lea eax, [esp + 0x6b]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x412236
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
mov edx, eax
and edx, 0xf55ac10b
xor eax, 0x755ac10b
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xb3
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4121f0
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004027f0
add esp, 8
mov ebx, eax
mov dword [esp + 0x68], 0x7b9a9d9a
lea eax, [esp + 0x6b]
mov dword [eax + 8], 0
mov dword [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x4120e0
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x68]
mov ecx, 0x7fcc2d0
sub ecx, eax
add eax, 0x2f
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0xe8], ecx
mov eax, dword [esp + 0xe8]
add al, 0xb7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x412280
jmp 0x4120e0
xor eax, eax
test edi, edi
sete al
mov esi, dword [esp + 0x2c]
jmp dword [eax*4 + 0x441a9c]
lea eax, [edi - 4]
mov dword [esp + 0x18], eax
mov eax, dword [edi - 4]
lea ecx, [eax + eax*2]
mov esi, edi
lea edi, [edi + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441aa4]
push dword [esp + 0x18]
call fcn.00408ce0
add esp, 4
mov esi, dword [esp + 0x2c]
jmp dword [0x441ab4]
jmp dword [0x441abc]
push dword [esp + 0x28]
call fcn.00408ce0
add esp, 4
jmp dword [0x441ac4]
xor eax, eax
cmp edi, esi
sete al
jmp dword [eax*4 + 0x441aac]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x41234e
push eax
call fcn.00408ce0
add esp, 4
mov eax, dword [edi - 8]
add edi, 0xfffffff4
test eax, eax
je 0x412330
push eax
call fcn.00408ce0
add esp, 4
jmp 0x412330
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0x4a]
cmp eax, 0x19000
jb 0x4123be
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
mul edi
shr edx, 5
imul eax, edx, 0x64
mov edi, ecx
sub edi, eax
movzx eax, word [edi + edi + 0x43e528]
mov edi, 0x51eb851f
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x412380
cmp edx, 9
ja 0x4123c5
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x4123ea
mov edx, ecx
cmp edx, 9
jbe 0x4123b1
mov eax, edx
and eax, 0xfffffffd
mov ecx, edx
and ecx, 2
or edx, 2
imul edx, ecx
xor ecx, 2
imul ecx, eax
movzx eax, word [ecx + edx + 0x43e528]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov dword [esp], 0x233c6b73
mov dword [esp + 4], 0
mov word [esp + 8], 0
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x58]
cmp eax, 9
ja 0x412460
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
movzx ecx, byte [esp + ecx]
lea edx, [eax + 6]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x54a16306
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xd6
mov ecx, dword [esp + 0x58]
mov byte [esp + ecx], al
inc dword [esp + 0x58]
mov eax, dword [esp + 0x58]
cmp eax, 0xa
jb 0x412420
mov dword [esp + 0xe8], 0x9d828ebb
mov dword [esp + 0xec], 0x6fab9f9b
mov dword [esp + 0xf0], 0x9f93aa94
mov dword [esp + 0xf4], 0x9360a599
mov dword [esp + 0xf8], 0xe0916597
mov dword [esp + 0xfc], 0xda18dde8
mov dword [esp + 0x100], 0xe0edebe6
mov dword [esp + 0x104], 0x17e3faed
mov dword [esp + 0x108], 0xf6d1d2e6
mov dword [esp + 0x10c], 0xfb08fdf1
mov dword [esp + 0x110], 0xfbf80dff
mov dword [esp + 0x114], 0xfcf501f9
mov dword [esp + 0x118], 0xcdffeff0
mov dword [esp + 0x11c], 0xcecc3906
mov dword [esp + 0x120], 0x33c0faca
mov dword [esp + 0x124], 0xcaf5f6c2
mov dword [esp + 0x128], 0xde34c1cd
mov dword [esp + 0x12c], 0x1d3c7d5
mov word [esp + 0x130], 0x4d2e
mov byte [esp + 0x13a], 0
mov dword [esp + 0x136], 0
mov dword [esp + 0x132], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0x52
ja 0x4125b8
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx edx, byte [esp + ecx + 0xe8]
lea edi, [eax + 0x632826ad]
lea ecx, [eax + edx]
add ecx, 0x632826ad
and edi, edx
add eax, 0xad
and eax, edx
add eax, edi
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
add al, 0x45
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0x53
jb 0x412560
lea eax, [0x446693]
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x4125c0
movzx ecx, byte [esp + 0xe8]
test cl, cl
mov edi, dword [esp + 0x18]
je 0x4125f2
xor edx, edx
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0xe9]
inc edx
test cl, cl
jne 0x4125e0
add eax, edx
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x41260b
inc esi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x412600
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x41262d
lea edx, [esp + 1]
mov esi, dword [esp + 0x2c]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x412620
jmp 0x412631
mov esi, dword [esp + 0x2c]
mov byte [eax], 0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441a9c]
jmp dword [0x441ab4]
push dword [esp + 0x30]
call fcn.00408ce0
add esp, 4
jmp dword [0x441abc]
jmp dword [0x441ac4]
lea ecx, [esp + 0x68]
call fcn.004094d0
jmp dword [0x441ad0]
mov ebx, dword [esp + 0x20]
mov word [esi], 0
mov eax, esp
push eax
push 0
push 0
push ebx
mov edi, dword [esp + 0xe0]
push edi
push 0
call dword [0x44769c]
mov esi, dword [esp]
lea eax, [esi + esi]
test esi, esi
jns 0x4126af
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov ecx, eax
mov eax, esp
push eax
push esi
mov dword [esp + 0x38], ecx
push ecx
push ebx
push edi
push 0
call dword [0x44769c]
jmp dword [0x4418c4]
push edi
call fcn.00408ce0
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, ecx
jmp dword [0x4418d0]
mov ecx, dword [esp + 0x14]
mov eax, ecx
jmp dword [0x4418d0]
mov esi, ecx
jmp 0x4132b9
lea eax, [edi + 1]
cmp byte [edi], 0
jne 0x412a04
mov ecx, edi
mov eax, dword [esp + 0x14]
sub ecx, eax
xor ebx, ebx
mov dword [esp + 0x20], ecx
test ecx, ecx
jle 0x412887
cmp byte [eax], 0
je 0x412887
xor ebx, ebx
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x68], 0
lea eax, [esp + 0x68]
push eax
push edi
push esi
call fcn.0040ed20
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x412887
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x412860
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x412895
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov dword [esp + 0x68], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
jbe 0x4128fb
mov ebx, dword [esp + 0x34]
cmp dword [esp + 0x20], 0
jle 0x4128fb
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x4128fb
lea eax, [esp + 0x68]
push eax
push edi
push esi
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0x68]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x18]
jae 0x4128fb
add esi, eax
cmp esi, edi
jb 0x4128d0
mov word [ebx], 0
mov esi, 0xfffffffe
xor eax, eax
mov edx, dword [esp + 0x28]
nop
nop
nop
nop
nop
add esi, 2
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x412910
mov edi, dword [esp + 0x14]
mov ecx, edi
jmp dword [0x441b00]
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne case.0x41152a.9
mov eax, esi
sub eax, edi
xor ebx, ebx
mov dword [esp + 0x20], eax
test eax, eax
jle 0x412987
cmp byte [edi], 0
je 0x412987
xor ebx, ebx
mov edi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x68], 0
lea eax, [esp + 0x68]
push eax
push esi
push edi
call fcn.0040ed20
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x412987
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x412960
mov eax, ebx
and eax, 1
mov ecx, ebx
xor ecx, 1
lea ecx, [ecx + eax*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x4129a0
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov edi, eax
mov dword [esp + 0x68], 0
lea eax, [eax + ebx*2]
mov dword [esp + 0x18], eax
cmp eax, edi
jbe 0x4129fb
cmp dword [esp + 0x20], 0
jle 0x4129fb
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4129fb
lea eax, [esp + 0x68]
push eax
push esi
push ebx
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0x68]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x4129fb
add ebx, eax
cmp ebx, esi
jb 0x4129d0
mov word [edi], 0
mov eax, dword [esp + 0x14]
mov edi, eax
jmp 0x412830
lea edi, [eax - 1]
lea ecx, [esi + 2]
test eax, eax
jns 0x412a1a
mov ecx, 0xffffffff
push ecx
call fcn.00408cd0
add esp, 4
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
mov edx, edi
jne 0x412a49
mov edx, ecx
not edx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412a40
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0x64]
add esi, eax
mov ebx, eax
cmp esi, eax
mov edi, dword [esp + 0x28]
jbe 0x412aad
mov ebx, dword [esp + 0x64]
test edx, edx
jle 0x412aad
add ecx, edx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x1c], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412aad
lea eax, [esp + 0x68]
push eax
push ecx
push edi
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0x68]
mov word [ebx], cx
add ebx, 2
cmp ebx, esi
jae 0x412aad
add edi, eax
mov ecx, dword [esp + 0x1c]
cmp edi, ecx
jb 0x412a80
mov word [ebx], 0
mov word [esp + 0x68], 0xb5b9
mov byte [esp + 0x6a], 0x4a
mov dword [esp + 0x6b], 0
mov dword [esp + 0x6f], 0
mov dword [esp + 0x73], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
mov ebx, dword [esp + 0x54]
ja 0x412b31
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + ecx]
add edx, 0xf8179d8a
add eax, 0xf8179d8a
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x3a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x412af0
lea eax, [esp + 0x68]
push eax
push dword [ebp + 8]
call fcn.00402890
add esp, 8
xor ecx, ecx
mov dword [esp + 0x30], eax
test eax, eax
setne cl
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], 0
jmp dword [ecx*4 + 0x441b04]
lea esi, [esp + 0x68]
mov ecx, esi
push 3
call fcn.00409490
push dword [esp + 0x28]
mov edi, dword [esp + 0x24]
push edi
push dword [esp + 0x6c]
push dword [esp + 0x40]
push esi
call fcn.004188f0
add esp, 0x14
mov ecx, esi
call fcn.00409e30
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x441b24]
mov edx, edi
lea esi, [edi - 4]
mov eax, dword [edi - 4]
lea ecx, [eax + eax*2]
lea edi, [edi + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441b2c]
push esi
call fcn.00408ce0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x441b44]
jmp dword [0x441b4c]
push dword [esp + 0x34]
call fcn.00408ce0
add esp, 4
mov esi, dword [esp + 0x2c]
jmp dword [0x441b54]
xor eax, eax
cmp edi, edx
sete al
jmp dword [eax*4 + 0x441b34]
mov eax, dword [edi - 0xc]
add edi, 0xfffffff4
test eax, eax
je 0x412c00
push eax
call fcn.00408ce0
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x412c00
push dword [esp + 0x30]
call fcn.00402a90
add esp, 4
mov ecx, eax
mov dword [esp + 0x28], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x412c54
mov esi, eax
test dl, dl
jne 0x412c5a
mov ecx, esi
push ecx
call fcn.00408cd0
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x20], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441b0c]
mov eax, dword [esp + 0x28]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x441b14]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x441b14]
xor ecx, ecx
xor eax, eax
cmp ecx, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x441b1c]
mov word [edx], 0
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
xor eax, eax
cmp ecx, dword [esp + 0x28]
setb al
mov ebx, dword [esp + 0x54]
jmp dword [eax*4 + 0x441b1c]
mov dword [esp + 0x14], ecx
push ecx
push dword [esp + 0x34]
call fcn.00402aa0
add esp, 8
mov esi, eax
mov word [esp + 0x68], 0x67a1
mov byte [esp + 0x6a], 0xf8
lea eax, [esp + 0x6b]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x412db0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0x75a85df]
and edx, ecx
add eax, ecx
add eax, 0x75a85df
add edx, edx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xe7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x412d70
lea eax, [esp + 0x68]
push eax
push esi
call fcn.004027f0
add esp, 8
mov ebx, eax
mov word [esp + 0x68], 0xebf9
mov byte [esp + 0x6a], 0x10
lea eax, [esp + 0x6b]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x412e40
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0xd3]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xf9e052d3
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x3b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x412e00
lea eax, [esp + 0x68]
push eax
push esi
call fcn.004027f0
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x68], 0x91ed
mov byte [esp + 0x6a], 4
mov dword [esp + 0x6f], 0
mov dword [esp + 0x6b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x412ec6
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x68]
lea edx, [eax + 0x4878a3d5]
mov edi, ecx
not edi
or edi, edx
and edx, ecx
add edx, edi
neg edx
add eax, edx
add eax, 0x4878a3d4
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x2d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x68], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x412e80
lea eax, [esp + 0x68]
push eax
push esi
call fcn.004027f0
add esp, 8
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x20]
mov dword [edx + ecx*4], 0
mov dword [edx + ecx*4 + 4], ebx
lea esi, [edx + ecx*4]
mov dword [esp + 0x1c], esi
mov dword [edx + ecx*4 + 8], eax
mov ebx, 0xfffffffe
xor edi, edi
mov eax, dword [esp + 0x18]
add ebx, 2
cmp byte [eax + edi], 0
lea edi, [edi + 1]
jne 0x412f00
test edi, edi
jns 0x412f20
mov eax, 0xffffffff
jmp 0x412f23
lea eax, [ebx + 2]
push eax
call fcn.00408cd0
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x1c]
mov dword [eax], edx
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x412f40
dec edi
jmp 0x412f59
mov edi, ecx
not edi
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412f50
mov dword [esp + 0x68], 0
add ebx, edx
cmp ebx, edx
jbe 0x412d00
test edi, edi
jle 0x412d00
mov esi, ecx
add esi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x412d00
lea eax, [esp + 0x68]
push eax
push esi
push ecx
mov edi, ecx
mov dword [esp + 0x24], edx
call fcn.0040ed20
mov edx, dword [esp + 0x24]
add esp, 0xc
movzx ecx, word [esp + 0x68]
mov word [edx], cx
add edx, 2
cmp edx, ebx
jae 0x412d00
add edi, eax
cmp edi, esi
mov ecx, edi
jb 0x412f80
jmp 0x412d00
mov esi, dword [esp + 0x2c]
jmp dword [0x441b54]
push dword [esp + 0x64]
call fcn.00408ce0
add esp, 4
lea ecx, [esp + 0x68]
call fcn.004094d0
jmp case.0x41152a.1
lea ecx, [esp + 0xe8]
call fcn.00437e60
jmp case.0x41152a.1
mov edi, eax
inc eax
cmp byte [edi], 0
jne case.0x4117d5.10
mov eax, edi
sub eax, ecx
xor ebx, ebx
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x41321d
cmp byte [ecx], 0
je 0x41321d
xor ebx, ebx
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0xe8], 0
lea eax, [esp + 0xe8]
push eax
push edi
push esi
call fcn.0040ed20
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x41321d
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4131f0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x41322b
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov esi, eax
mov eax, ebx
and eax, 1
xor ebx, 1
lea eax, [ebx + eax*2]
mov dword [esp + 0xe8], 0
lea eax, [esi + eax*2]
add eax, 0xfffffffe
mov dword [esp + 0x18], eax
cmp eax, esi
jbe 0x4132a1
cmp dword [esp + 0x1c], 0
jle 0x4132a1
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4132a1
lea eax, [esp + 0xe8]
push eax
push edi
push ebx
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0xe8]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x18]
jae 0x4132a1
add ebx, eax
cmp ebx, edi
jb 0x413270
mov word [esi], 0
lea ecx, [esp + 0x68]
push 1
call fcn.00409490
mov ecx, dword [esp + 0x14]
mov eax, ecx
mov esi, eax
lea eax, [esi + 1]
cmp byte [esi], 0
jne 0x4132b7
mov eax, esi
sub eax, ecx
xor ebx, ebx
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x41330d
cmp byte [ecx], 0
je 0x41330d
xor ebx, ebx
mov edi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0xe8], 0
lea eax, [esp + 0xe8]
push eax
push esi
push edi
call fcn.0040ed20
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x41330d
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4132e0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x41331b
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov dword [esp + 0xe8], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
jbe 0x413391
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x1c], 0
jle 0x413391
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x413391
lea eax, [esp + 0xe8]
push eax
push esi
push edi
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0xe8]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x18]
jae 0x413391
add edi, eax
cmp edi, esi
jb 0x413360
mov word [ebx], 0
lea ecx, [esp + 0x68]
push 1
call fcn.00409490
mov ecx, dword [esp + 0x14]
mov eax, ecx
jmp dword [0x4418d8]
xor esi, esi
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x28]
jmp 0x4133c5
push edi
call fcn.00402a90
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
jmp dword [ecx*4 + 0x4418dc]
jmp dword [0x441b64]
mov eax, dword [case.0x40fcf7.37]
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x412d21.27]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
inc ebx
jmp 0x410500
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0xc], edi
push edi
call fcn.00402a90
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x441b9c]
push ebx
push edi
call fcn.00402aa0
add esp, 8
mov esi, eax
mov word [esp + 0x118], 0x35bd
mov dword [esp + 0x11a], 0
mov dword [esp + 0x11e], 0
mov dword [esp + 0x121], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xc
ja 0x4139a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x118]
lea edx, [eax + ecx]
add edx, 0xfd6101f9
add eax, 0xfd6101f9
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
mov ecx, eax
xor ecx, 0x30
and eax, 0x30
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xd
jb 0x413940
mov dword [esp + 0xfc], ebx
push 2
lea eax, [esp + 0x11c]
push eax
push esi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
mov dword [esp + 0x2c], esi
jmp dword [ecx*4 + 0x441bb4]
mov word [esp + 0x48], 0x3126
mov byte [esp + 0x4a], 0x4a
mov dword [esp + 0x4b], 0
mov dword [esp + 0x4f], 0
mov dword [esp + 0x52], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xd
ja 0x413a66
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x48]
lea esi, [eax + 0x137ca]
lea ecx, [eax + edx]
add ecx, 0x137ca
add eax, 0xca
mov edi, eax
and edi, edx
or eax, esi
and eax, edx
add eax, edi
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x7a
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xe
jb 0x413a10
push 3
lea eax, [esp + 0x4c]
push eax
mov esi, dword [esp + 0x34]
push esi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x441bbc]
movzx eax, bl
mov ebx, dword [esp + 0xfc]
jmp dword [eax*4 + 0x441bc4]
mov word [esp + 0x118], 0xc57d
mov dword [esp + 0x11a], 0
mov dword [esp + 0x11e], 0
mov byte [esp + 0x122], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xa
ja 0x413b43
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x118]
lea edx, [eax - 0x70e70c1f]
and edx, ecx
add eax, ecx
add eax, 0x8f18f3e1
add edx, edx
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, eax
or ecx, 0xd8
and eax, 0xd8
add eax, ecx
inc al
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xb
jb 0x413ae0
lea eax, [esp + 0x118]
push eax
push esi
call fcn.004027f0
add esp, 8
mov esi, eax
mov word [esp + 0x118], 0x5956
mov byte [esp + 0x11a], 0x22
mov dword [esp + 0x11b], 0
mov dword [esp + 0x11f], 0
mov dword [esp + 0x123], 0
mov byte [esp + 0x127], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xf
ja 0x413c25
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx edx, byte [esp + ecx + 0x118]
mov ecx, 0xe8f8fcd9
sub ecx, eax
add eax, 0x26
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
mov ecx, eax
xor ecx, 0xf5
and eax, 0x75
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x118], al
mov eax, dword [esp + 0xb8]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
cmp eax, 0x10
jb 0x413bb0
lea eax, [esp + 0x118]
push eax
push dword [esp + 0x30]
call fcn.00402840
add esp, 8
fnstcw word [esp + 0xb6]
movzx eax, word [esp + 0xb6]
or eax, 0xc00
mov word [esp + 0x102], ax
fldcw word [esp + 0x102]
fistp dword [esp + 0x110]
fldcw word [esp + 0xb6]
mov eax, dword [esp + 0x110]
mov dword [esp + 0x34], eax
mov word [esp + 0x118], 0xb911
mov dword [esp + 0x11a], 0
mov dword [esp + 0x11e], 0
mov word [esp + 0x122], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xb
ja 0x413d23
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x118]
lea edx, [eax + 0xc7]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xa0f91cc7
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, eax
or ecx, 0x8e
and eax, 0x8e
add eax, ecx
inc al
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xc
jb 0x413cc0
lea eax, [esp + 0x118]
push eax
push dword [esp + 0x30]
call fcn.00402840
add esp, 8
fstp qword [esp + 0x3c]
mov eax, 0xffffffff
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x413d50
mov dword [esp + 0x48], 0
lea edx, [esp + 0x118]
test eax, eax
jle 0x413dc0
mov esi, ecx
add esi, eax
xor ebx, ebx
lea edx, [esp + 0x118]
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x413dc0
lea eax, [esp + 0x48]
push eax
push esi
push ecx
mov edi, ecx
mov dword [esp + 0x3c], edx
call fcn.0040ed20
mov edx, dword [esp + 0x3c]
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edx], cx
add edx, 2
cmp ebx, 0x3fd
ja 0x413dc0
add edi, eax
inc ebx
cmp edi, esi
mov ecx, edi
jb case.default.0x413df1
nop
nop
nop
nop
nop
nop
mov word [edx], 0
lea eax, [esp + 0x114]
push eax
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x120]
push eax
call fcn.0040bd00
add esp, 0xc
movzx ecx, al
mov eax, 4
mov edi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x441bcc]
fnstcw word [esp + 0xb4]
movzx eax, word [esp + 0xb4]
or eax, 0xc00
mov word [esp + 0x100], ax
fldcw word [esp + 0x100]
fld qword [esp + 0x3c]
fistp dword [esp + 0x10c]
fldcw word [esp + 0xb4]
xor eax, eax
cmp dword [esp + 0x10c], 0
sete al
mov dword [esp + 0x30], 0
xor ebx, ebx
mov dword [esp + 0x108], eax
jmp dword [eax*4 + 0x441bd4]
mov word [esp + 0x48], 0xb926
mov dword [esp + 0x4a], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xd
ja 0x413ed5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x137c7]
and edx, ecx
add eax, ecx
add eax, 0x137c7
add edx, edx
sub eax, edx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x8f
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xe
jb 0x413e90
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x30]
call fcn.004027f0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441bdc]
mov dword [esp + 0x48], 0x3cbcb1b0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x53], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xe
ja 0x413f83
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax - 0x632cc48]
add eax, 0xb8
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0xb8]
mov ecx, eax
xor ecx, 0xf7
and eax, 0x77
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xf
jb 0x413f30
mov eax, dword [esp + 0x48]
push dword [eax + 0x14]
call fcn.00409300
add esp, 4
call fcn.00409310
mov esi, eax
and esi, 0xf
or esi, 0x10
xor edi, edi
xor eax, eax
cmp edi, esi
setb al
mov ebx, 0x38e38e39
jmp dword [eax*4 + 0x441c0c]
call fcn.00409310
mov ecx, eax
imul ebx
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 [esp + edi*2 + 0xb8], ax
inc edi
xor eax, eax
cmp edi, esi
setb al
jmp dword [eax*4 + 0x441c0c]
mov word [esp + edi*2 + 0xb8], 0
mov dword [esp + 0x10], 0xebc015ed
mov dword [esp + 0x14], 0xef3be931
mov dword [esp + 0x18], 0xe317ed3e
mov dword [esp + 0x1c], 0xe7e0e14e
mov byte [esp + 0x20], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x10
ja 0x414096
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx esi, byte [esp + ecx + 0x10]
lea edx, [eax - 0x38cd8f03]
mov ecx, edx
and ecx, esi
mov edi, edx
xor edi, esi
or edx, esi
xor edx, edi
add eax, 0xfd
and eax, esi
add eax, edx
lea ecx, [edi + ecx*2]
sub ecx, eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
mov ecx, eax
or ecx, 0x14
and eax, 0x14
add eax, ecx
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x11
jb 0x414040
movzx eax, word [esp + 0x10]
lea esi, [esp + 0x48]
test ax, ax
je 0x4140c1
lea ecx, [esp + 0x12]
lea esi, [esp + 0x48]
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4140b0
mov word [esi], 0
movzx eax, word [esp + 0xb8]
test ax, ax
je 0x4140f1
lea ecx, [esp + 0xba]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4140e0
mov word [esi], 0
lea eax, [esp + 0x48]
sub esi, eax
sar esi, 1
lea ecx, [esp + 0x104]
push ecx
push 0
push 0
push esi
push eax
push 0
call dword [0x44769c]
mov edi, dword [esp + 0x104]
mov eax, edi
add eax, 4
lea eax, [edi + edi + 8]
jns 0x41412b
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov ebx, eax
lea eax, [esp + 0x104]
push eax
push edi
push ebx
push esi
lea eax, [esp + 0x58]
push eax
push 0
call dword [0x44769c]
xor eax, eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441c14]
xor eax, eax
cmp ecx, 1
sete al
mov edi, dword [esp + 0xc]
jmp dword [eax*4 + 0x441c1c]
xor eax, eax
cmp ecx, 2
sete al
jmp dword [eax*4 + 0x441c24]
jmp case.0x413eed.10
mov word [esp + 0xb8], 0xf9a1
mov dword [esp + 0xba], 0
mov dword [esp + 0xbe], 0
mov dword [esp + 0xc2], 0
mov word [esp + 0xc6], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xf
ja 0x41421f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xb8]
lea edx, [eax - 0x1d16e401]
dec eax
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 7
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x10
jb 0x4141e0
push 3
lea eax, [esp + 0xbc]
push eax
push esi
call fcn.00402a40
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esp + 0xfc]
jmp dword [ecx*4 + 0x441bc4]
xor eax, eax
mov ecx, 4
cmp ecx, 4
sete al
jmp dword [eax*4 + 0x441d4c]
mov ecx, eax
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x414260
mov ecx, ebx
sub ecx, eax
xor edi, edi
mov dword [esp + 0xac], ecx
test ecx, ecx
mov dword [esp + 0x44], eax
jle 0x4142b7
cmp byte [eax], 0
je 0x4142b7
xor edi, edi
mov esi, dword [esp + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push ebx
push esi
call fcn.0040ed20
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, ebx
jae 0x4142b7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x414290
mov eax, edi
and eax, 1
mov ecx, edi
xor ecx, 1
lea esi, [ecx + eax*2]
lea eax, [esi + esi]
test esi, esi
jns 0x4142d0
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + esi*2]
add ecx, 0xfffffffe
mov esi, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x44]
jbe 0x4145c1
mov esi, dword [esp + 0x38]
cmp dword [esp + 0xac], 0
jle 0x4145c1
mov esi, dword [esp + 0x38]
mov dword [esp + 0x3c], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4145c1
lea eax, [esp + 0x48]
push eax
push ebx
push ecx
mov edi, ecx
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x30]
jae 0x4145bd
add edi, eax
cmp edi, ebx
mov ecx, edi
mov edi, dword [esp + 0x3c]
jb 0x414320
jmp 0x4145c1
mov dword [esp + 0x10], 0xb317b16e
mov dword [esp + 0x14], 0xb713b53c
mov word [esp + 0x18], 0xa9a8
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1d], 0
mov edi, dword [esp + 0xc]
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x10
ja 0x4143eb
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax - 0xbae6038]
add eax, 0xc8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
mov ecx, eax
xor ecx, 0x87
and eax, 7
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x11
jb 0x4143a0
mov eax, ebx
add eax, 0xfffffffe
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4143f0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4145b3
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x414410
jmp 0x4145b1
mov dword [esp + 0x10], 0xb316b16e
mov dword [esp + 0x14], 0xb72ab528
mov word [esp + 0x18], 0xa9a8
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x15
ja 0x4144af
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x78d536c8]
and edx, ecx
add eax, ecx
add eax, 0x78d536c8
add edx, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x88
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x16
jb 0x414470
mov eax, 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 0x4144c0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4145b3
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x4144e0
jmp 0x4145b1
mov dword [esp + 0x10], 0xb841544
mov dword [esp + 0x14], 0xf5f099f
mov word [esp + 0x18], 0xd0e
mov dword [esp + 0x1a], 0
mov word [esp + 0x1e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xf
ja 0x41456d
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax - 0x60066c53]
add eax, 0xad
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x45
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x10
jb 0x414530
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414580
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4145b3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x12]
add edx, 2
test cx, cx
jne 0x4145a0
add eax, edx
mov word [eax], 0
jmp case.0x413eed.10
mov edi, dword [esp + 0x3c]
mov word [esi], 0
lea eax, [esp + 0x48]
push eax
push 0
push 0
push edi
push dword [esp + 0x48]
push 0
call dword [0x44769c]
mov esi, dword [esp + 0x48]
lea eax, [esi + esi]
test esi, esi
jns 0x4145ec
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov ebx, eax
lea eax, [esp + 0x48]
push eax
push esi
push ebx
push edi
mov esi, dword [esp + 0x48]
push esi
push 0
call dword [0x44769c]
jmp dword [0x441be4]
jmp dword [0x441bf0]
xor esi, esi
xor ecx, ecx
test edi, edi
setne cl
mov dword [esp + 0xac], ecx
jmp dword [ecx*4 + 0x441c4c]
mov edi, dword [esp + 0xc]
jmp dword [0x441bfc]
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x441c04]
push 0x80
push 0x60
push 5
push 0
push 0x100002
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.0043b890
add esp, 0x1c
mov esi, eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x441c2c]
jmp 0x414768
push 0
push dword [esp + 0x118]
push dword [esp + 0xb8]
push dword [esp + 0x14]
call fcn.0043c0c0
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x48], 0x32353437
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0xf
ja 0x414715
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x48]
lea edi, [ecx + 0x6ccf36a9]
add ecx, 0xa9
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esp + 0xb8], edi
mov ecx, dword [esp + 0xb8]
add cl, 0x61
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x48], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0x10
jb 0x4146d0
mov ecx, dword [0x4476a0]
test ecx, ecx
je 0x414740
mov dword [esp + 0x3c], ebx
mov edx, dword [esp + 0x48]
xor edi, edi
mov ebx, dword [0x4476a4]
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x414746
inc edi
cmp ecx, edi
jne 0x414730
jmp case.default.0x414796
mov edi, dword [esp + 0xc]
jmp 0x414768
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.default.0x414796
push eax
push 1
push dword [0x4476a8]
push ecx
call fcn.00439650
add esp, 0x10
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 0x3c]
push dword [esp + 0xb0]
call fcn.004379b0
add esp, 4
mov dword [esp + 0xb0], 0
not esi
shr esi, 0x1f
xor ecx, ecx
mov eax, 4
mov dword [esp + 0x30], 0
jmp dword [esi*4 + 0x441c34]
xor edx, edx
cmp dword [esp + 0x34], 1
sete dl
xor eax, eax
mov ecx, 1
mov dword [esp + 0x30], 0
jmp dword [edx*4 + 0x441c3c]
jmp dword [ecx*4 + 0x441c7c]
xor eax, eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x441c84]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x441c8c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x441c94]
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x414800
sub eax, ebx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
jge 0x41481a
mov ecx, 0xffffffff
mov dword [esp + 0x3c], ebx
push ecx
call fcn.00408cd0
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0xb8], 0xf3f2cdea
mov dword [esp + 0xbc], 0
mov byte [esp + 0xc0], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 8
ja 0x4148a4
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0xb8]
mov edx, eax
and edx, 0x26a466de
xor eax, 0x26a466de
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xee
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 9
jb 0x414860
mov dword [esp + 0x48], 0xf361cd5c
mov dword [esp + 0x4c], 0xf793f16b
mov dword [esp + 0x50], 0xfb6df562
mov dword [esp + 0x54], 0xff9bf990
mov dword [esp + 0x58], 0xe38efd90
mov dword [esp + 0x5c], 0xe7cbe1c0
mov dword [esp + 0x60], 0xeb72e581
mov dword [esp + 0x64], 0xef89e98d
mov dword [esp + 0x68], 0x1374edcc
mov dword [esp + 0x6c], 0x17861189
mov dword [esp + 0x70], 0x1b8d1575
mov dword [esp + 0x74], 0x1f3e198f
mov dword [esp + 0x78], 0x3681d31
mov dword [esp + 0x7c], 0x7200120
mov word [esp + 0x80], 0x504
mov dword [esp + 0x82], 0
mov dword [esp + 0x86], 0
mov dword [esp + 0x8a], 0
mov word [esp + 0x8e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x47
ja 0x4149b4
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx esi, byte [esp + eax + 0x48]
lea eax, [edx - 0x1b622ea2]
mov ecx, eax
and ecx, esi
xor eax, esi
mov edi, 0x1b622ea1
sub edi, edx
lea ebx, [edx + 0x5e]
and ebx, esi
or edi, esi
add edi, edx
add edi, ebx
sub eax, edi
lea eax, [eax + ecx*2]
add eax, 0x1b622ea1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x6e
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x48
jb 0x414960
movzx ecx, word [esp + 0x48]
mov esi, dword [esp + 0x30]
mov eax, esi
test cx, cx
je 0x4149e1
lea edx, [esp + 0x4a]
mov eax, esi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4149d0
mov word [eax], 0
mov ebx, dword [esp + 0x3c]
movzx ecx, word [ebx]
test cx, cx
je 0x415276
lea edx, [ebx + 2]
mov edi, dword [esp + 0xc]
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414a00
jmp 0x41527a
sete al
movzx eax, al
jmp dword [eax*4 + 0x441c9c]
mov eax, dword [esp + 0x108]
jmp dword [eax*4 + 0x441ca4]
push 0xa013361e
push dword [0x447694]
call fcn.0043b060
add esp, 8
push 0
push 0
push dword [esp + 0xb8]
push 0x41d2f0
push 0
push 0
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x441cb4]
mov dword [esp + 0xbc], 0xffffffff
mov dword [esp + 0xb8], 0xb8797400
mov dword [esp + 0x48], 0x32353437
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xf
ja 0x414afd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x6ccf36a9]
add eax, 0xa9
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0x61
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x10
jb 0x414ac0
mov eax, dword [0x4476a0]
test eax, eax
je 0x4151a4
mov ecx, dword [esp + 0x48]
xor edx, edx
mov edi, dword [0x4476a4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xb33e16a3
je 0x415180
inc edx
cmp eax, edx
jne 0x414b20
jmp 0x4151a4
mov word [esp + 0x48], 0xe7f8
mov byte [esp + 0x4a], 0x90
mov dword [esp + 0x4b], 0
mov dword [esp + 0x4f], 0
mov dword [esp + 0x53], 0
mov byte [esp + 0x57], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xf
ja 0x414bc6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add edx, 0x3acdb293
add eax, 0x3acdb293
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0xb8]
add al, 0xfb
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x10
jb 0x414b80
lea eax, [esp + 0x48]
push eax
mov esi, dword [esp + 0x30]
push esi
call fcn.004027f0
add esp, 8
mov dword [esp + 0x38], eax
mov word [esp + 0x48], 0x9381
mov byte [esp + 0x4a], 0x24
mov dword [esp + 0x4b], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 9
ja 0x414c61
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 5]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x145f1c05
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
mov ecx, eax
or ecx, 0xdc
and eax, 0xdc
add eax, ecx
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xa
jb 0x414c10
lea eax, [esp + 0x48]
push eax
push esi
call fcn.004027f0
add esp, 8
mov edi, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x414ca0
sar eax, 1
xor edx, edx
mov ecx, dword [esp + 0x38]
test ecx, ecx
setne dl
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], edx
jmp dword [edx*4 + 0x441c44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne case.default.0x414ccb
sub esi, dword [esp + 0x38]
inc esi
xor ecx, ecx
test edi, edi
setne cl
mov dword [esp + 0xac], ecx
jmp dword [ecx*4 + 0x441c4c]
jmp dword [0x441c5c]
xor edi, edi
jmp 0x414e9b
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
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 + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0x44
push 0xd3a7a30
push dword [0x447694]
call fcn.0043b060
add esp, 8
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x4c]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x50]
push ebx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441cac]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb8], 0x32353437
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xf
ja 0x414e45
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0xb8]
lea esi, [ecx + 0x6ccf36a9]
add ecx, 0xa9
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0x61
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb8], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x10
jb 0x414e00
mov ecx, dword [0x4476a0]
test ecx, ecx
je case.0x414796.30
mov edx, dword [esp + 0xb8]
xor esi, esi
mov edi, dword [0x4476a4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x415440
inc esi
cmp ecx, esi
jne 0x414e70
jmp case.0x414796.30
mov edx, edi
mov ecx, edi
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x414e90
sub edi, edx
inc edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], 0x23af21b4
mov dword [esp + 0x4c], 0x1f801db4
mov dword [esp + 0x50], 0x1b8c198a
mov dword [esp + 0x54], 0x17c615d7
mov word [esp + 0x58], 0x1116
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x61], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x1c
ja 0x414f2f
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x48]
lea edi, [ecx + 0x5f351db]
add ecx, 0xdb
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x10]
add cl, 3
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x48], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x1d
jb 0x414ef0
lea edx, [esp + 0x48]
mov ecx, 4
lea edi, [esp + 0xb8]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x58]
lea edi, [esp + 0xc8]
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esp + ecx + 0xba], 0
lea ecx, [ecx + 2]
jne 0x414f70
mov dword [esp + 0x3c], ebx
sar ecx, 1
add eax, esi
add eax, ecx
inc eax
mov ecx, eax
mov edx, dword [esp + 0x44]
and ecx, edx
xor eax, edx
lea edx, [eax + ecx*2]
lea ecx, [eax + ecx*2]
inc ecx
lea eax, [edx + edx]
add eax, 2
test ecx, ecx
jns 0x414fa9
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov ebx, eax
movzx eax, word [esp + 0xb8]
mov dword [esp + 0x30], ebx
test ax, ax
je 0x414fe1
lea ecx, [esp + 0xba]
mov ebx, dword [esp + 0x30]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414fd0
mov dword [ebx], 0x220020
add ebx, 4
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx]
test ax, ax
je 0x415011
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415000
lea edi, [ebx + 2]
mov word [ebx], 0x22
jmp dword [0x441c64]
push dword [esp + 0x3c]
call fcn.00408ce0
add esp, 4
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
jmp dword [eax*4 + 0x441c6c]
mov word [edi], 0x2c
mov eax, 0xffffffff
mov edi, dword [esp + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne 0x415050
lea edx, [ebx + 4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x48], 0
cmp esi, 2
jl 0x415560
test eax, eax
jle 0x415560
mov edx, edi
add edx, eax
lea eax, [ebx + esi*2]
add eax, 2
mov dword [esp + 0x3c], eax
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x415560
mov esi, edx
lea eax, [esp + 0x48]
push eax
push edx
push edi
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov edx, dword [esp + 0x2c]
mov word [edx], cx
add edx, 2
cmp edx, dword [esp + 0x3c]
mov dword [esp + 0x2c], edx
jae 0x41555c
add edi, eax
cmp edi, esi
mov ecx, dword [esp + 0x34]
mov edx, esi
jb 0x415090
jmp 0x415560
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
jmp dword [eax*4 + 0x441c6c]
mov eax, dword [esp + 0xac]
jmp dword [eax*4 + 0x441c74]
mov word [edi], 0x2c
mov eax, 0xffffffff
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x415100
lea esi, [edi + 2]
mov dword [esp + 0x48], 0
cmp dword [esp + 0x44], 2
jl 0x41515f
test eax, eax
jle 0x41515f
mov ebx, ecx
add ebx, eax
mov eax, dword [esp + 0x44]
lea eax, [edi + eax*2]
mov dword [esp + 0x2c], eax
nop
cmp byte [ecx], 0
je 0x41515f
lea eax, [esp + 0x48]
push eax
push ebx
push ecx
mov edi, ecx
call fcn.0040ed20
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x2c]
jae 0x41515f
add edi, eax
cmp edi, ebx
mov ecx, edi
jb 0x415130
mov word [esi], 0
xor eax, eax
mov dword [esp + 0x34], 0
xor ebx, ebx
mov edi, dword [esp + 0xc]
mov ecx, 1
jmp dword [ecx*4 + 0x441c7c]
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x4151a4
lea ecx, [esp + 0xb8]
push ecx
push 0
push esi
push 3
push dword [0x4476a8]
push eax
call fcn.00439650
add esp, 0x18
mov dword [esp + 0x48], 0x32353437
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xf
ja 0x41521d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x6ccf36a9]
add eax, 0xa9
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0x61
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x10
jb 0x4151e0
mov eax, dword [0x4476a0]
test eax, eax
je case.0x414796.30
mov ecx, dword [esp + 0x48]
xor edx, edx
mov edi, dword [0x4476a4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x11081610
je 0x415253
inc edx
cmp eax, edx
jne 0x415240
jmp case.0x414796.30
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je case.0x414796.30
push esi
push 1
push dword [0x4476a8]
push eax
call fcn.00439650
add esp, 0x10
jmp case.0x414796.30
mov edi, dword [esp + 0xc]
mov word [eax], 0
movzx ecx, word [esp + 0xb8]
test cx, cx
je 0x4152b1
lea edx, [esp + 0xba]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4152a0
mov word [eax], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
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 + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0x44
push 0xd3a7a30
push dword [0x447694]
call fcn.0043b060
add esp, 8
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x4c]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esp + 0x50]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441cbc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb8], 0x32353437
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xf
ja 0x415415
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0xb8]
lea esi, [ecx + 0x6ccf36a9]
add ecx, 0xa9
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0x61
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb8], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x10
jb 0x4153d0
mov ecx, dword [0x4476a0]
test ecx, ecx
je 0x41546c
mov edx, dword [esp + 0xb8]
xor esi, esi
mov edi, dword [0x4476a4]
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x415452
inc esi
cmp ecx, esi
jne 0x415430
jmp 0x41546c
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x415593
mov edi, dword [esp + 0xc]
jmp case.0x414796.24
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x41546c
push eax
push 1
push dword [0x4476a8]
push ecx
call fcn.00439650
add esp, 0x10
mov eax, dword [case.0x414796.24]
mov edi, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0xb0]
mov ecx, dword [case.0x414796.42]
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441ce4]
push eax
call fcn.004379b0
add esp, 4
mov eax, dword [case.0x414796.48]
nop
nop
jmp eax
mov eax, dword [case.0x414796.52]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x441d0c]
jmp dword [0x441d18]
push ebx
call fcn.00408ce0
add esp, 4
nop
push ebx
call fcn.00408ce0
add esp, 4
jmp dword [0x441d20]
xor eax, eax
mov ecx, dword [esp + 0x30]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441d24]
push ecx
call fcn.00408ce0
add esp, 4
mov ecx, dword [case.0x413df1.0]
xor eax, eax
jmp ecx
mov ecx, dword [case.0x414796.69]
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp eax, 4
sete cl
mov ebx, dword [esp + 0xfc]
jmp dword [ecx*4 + 0x441d4c]
jmp dword [0x441d60]
jmp dword [0x441d70]
inc ebx
jmp 0x4138d0
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
mov word [edi], 0
mov eax, dword [esp + 0xac]
jmp dword [eax*4 + 0x441c74]
xor eax, eax
mov dword [esp + 0x34], 0
xor ebx, ebx
mov edi, dword [esp + 0xc]
mov ecx, 1
jmp dword [ecx*4 + 0x441c7c]
push eax
push 1
push dword [0x4476a8]
push ecx
call fcn.00439650
add esp, 0x10
mov edi, dword [esp + 0xc]
jmp case.0x414796.24
push esi
call fcn.00408ce0
add esp, 4
push esi
call fcn.00408ce0
add esp, 4
jmp dword [0x441bf4]
mov eax, dword [case.0x412d21.31]
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