Function at 0x4120dc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf0
mov eax, dword [str.c234bc615b913e9a293cde6ec0383ef1]
mov dword [esp + 0xd0], 0x4b97cb8c
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov word [esp + 0xdc], 0
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x28]
cmp ecx, 0xd
ja 0x40f80a
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
movzx edx, byte [esp + edx + 0xd0]
lea esi, [ecx + 0xd]
and esi, edx
mov edi, 0xa1bf55f2
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 0x2e0], edi
mov ecx, dword [esp + 0x2e0]
mov edx, ecx
xor edx, 0xa4
and ecx, 0x24
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x28]
mov byte [esp + edx + 0xd0], cl
inc dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
cmp ecx, 0xe
jb 0x40f7b0
mov edx, dword [str.jMw1IE__AINUDE]
mov dword [esp + 0x2e0], 0xee36c2cd
mov dword [esp + 0x2e4], 0xbeb9c436
mov dword [esp + 0x2e8], 0x46b1b84e
mov dword [esp + 0x2ec], 0xbe414ebd
mov dword [esp + 0x2f0], 0x41f0b0b7
mov dword [esp + 0x2f4], 0x9b8347b5
mov dword [esp + 0x2f8], 0x57e89596
mov dword [esp + 0x2fc], 0xcf8bada9
mov dword [esp + 0x300], 0
mov word [esp + 0x304], 0
mov dword [esp + 0x260], 0
mov ecx, dword [esp + 0x260]
cmp ecx, 0x25
ja 0x40f901
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x260]
mov esi, dword [esp + 0x260]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [ecx - 0x752c4446]
add ecx, 0xba
and ecx, esi
or edi, esi
sub edi, ecx
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0x28]
mov esi, ecx
xor esi, 0xe9
and ecx, 0x69
lea ecx, [esi + ecx*2]
inc cl
mov esi, dword [esp + 0x260]
mov byte [esp + esi + 0x2e0], cl
inc dword [esp + 0x260]
mov ecx, dword [esp + 0x260]
cmp ecx, 0x26
jb 0x40f8a0
movzx ebx, byte [esp + 0x2e0]
lea ecx, [esp + 0x260]
test bl, bl
je 0x40f92b
lea esi, [esp + 0x2e1]
nop
nop
nop
nop
nop
mov byte [ecx], bl
inc ecx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40f920
mov byte [ecx], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40f94b
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 0x40f940
mov byte [ecx], 0
movzx edx, byte [esp + 0xd0]
test dl, dl
je 0x40f97b
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 0x40f970
mov byte [ecx], 0
movzx edx, byte [eax]
test dl, dl
je 0x40f99b
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 0x40f990
mov byte [ecx], 0
lea edx, [esp + 0x260]
mov esi, ecx
xor esi, edx
not edx
and edx, ecx
add edx, edx
mov dword [esp + 0x2e0], 0x4bd54503
mov dword [esp + 0x2e4], 0x4fdc49d8
mov dword [esp + 0x2e8], 0xb3de4de5
mov dword [esp + 0x2ec], 0xb7e3b126
mov dword [esp + 0x2f0], 0xbb2bb502
mov dword [esp + 0x2f4], 0xbf13b92a
mov dword [esp + 0x2f8], 0xa3dcbde0
mov dword [esp + 0x2fc], 0xa730a105
mov dword [esp + 0x300], 0xab08a536
mov dword [esp + 0x304], 0xaf0da905
mov dword [esp + 0x308], 0x9338ad09
mov dword [esp + 0x30c], 0x9701913d
mov dword [esp + 0x310], 0x9bc59504
mov dword [esp + 0x314], 0x9fcb9902
mov dword [esp + 0x318], 0x83059d07
mov dword [esp + 0x31c], 0x87d3811b
mov dword [esp + 0x320], 0x8b15852c
mov dword [esp + 0x324], 0x8f1b891c
mov dword [esp + 0x328], 0xf3178ddd
mov dword [esp + 0x32c], 0xf75cf164
mov dword [esp + 0x330], 0xfb66f55d
mov dword [esp + 0x334], 0xff69f95f
mov dword [esp + 0x338], 0xe357fd5a
mov dword [esp + 0x33c], 0xe793e146
mov dword [esp + 0x340], 0xebe4e5e8
mov dword [esp + 0x34c], 0
mov dword [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x28]
cmp ecx, 0x6f
ja 0x40fb60
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x28]
movzx eax, byte [esp + edi + 0x2e0]
lea ebx, [ecx - 0x5683a48b]
mov edi, eax
not edi
or edi, ebx
and ebx, eax
add ecx, eax
add ecx, 0xa97c5b75
add edi, eax
lea eax, [ebx + edi]
inc eax
mov edi, ecx
not edi
and edi, eax
not eax
and eax, ecx
sub eax, edi
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0xcd
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0x70
jb 0x40fb00
sub edx, esi
mov dword [esp + 0xd0], 0x2b432517
mov dword [esp + 0xd4], 0x2f47295a
mov word [esp + 0xd8], 0x2d2e
mov dword [esp + 0xda], 0
mov dword [esp + 0xdd], 0
mov dword [esp + 0x1d0], 0
mov eax, dword [esp + 0x1d0]
cmp eax, 0x10
ja 0x40fc05
nop
mov eax, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1d0]
movzx ecx, byte [esp + ecx + 0xd0]
lea esi, [eax + ecx]
add esi, 0xedddfda5
add eax, 0xedddfda5
and eax, ecx
add eax, eax
sub esi, eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x28]
add al, 0x7d
mov ecx, dword [esp + 0x1d0]
mov byte [esp + ecx + 0xd0], al
inc dword [esp + 0x1d0]
mov eax, dword [esp + 0x1d0]
cmp eax, 0x11
jb 0x40fbb0
lea eax, [esp + 0xcc]
lea ecx, [esp + 0xc0]
lea esi, [esp + 0x2e0]
lea ebx, [esp + 0xd0]
push eax
push ecx
push edx
lea eax, [esp + 0x26c]
push eax
push esi
push ebx
push 0x44771c
call fcn.0040ca60
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4426b8]
xor esi, esi
xor ecx, ecx
test esi, esi
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x4426c0]
push 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xcc]
mov edi, dword [esp + 0xc0]
lea eax, [ecx + ecx*2]
shr eax, 2
cmp byte [ecx + edi - 1], 0x3d
je 0x40fc91
mov edx, ecx
or edx, 0xfffffffe
mov esi, ecx
and esi, 0xfffffffe
add esi, edx
cmp byte [edi + esi + 1], 0x2e
jne 0x40fc92
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x40fca1
cmp ecx, 0x2e
jne 0x40fca2
dec eax
push eax
call fcn.00409310
add esp, 4
mov esi, eax
push eax
push edi
call fcn.00434810
add esp, 8
push dword [esp + 0xc0]
call fcn.00437bc0
add esp, 4
xor ecx, ecx
test esi, esi
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x4426c0]
push esi
mov edi, ecx
call fcn.00401ef0
add esp, 4
jmp dword [edi*4 + 0x4426c8]
push esi
mov esi, eax
call fcn.00409320
mov eax, esi
add esp, 4
push eax
mov edi, eax
call fcn.004029a0
add esp, 4
mov esi, eax
mov word [esp + 0x2e0], 0x3628
mov byte [esp + 0x2e2], 0xa0
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov dword [esp + 0x2eb], 0
mov byte [esp + 0x2ef], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xf
ja 0x40fd99
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0x670bd1bb]
add eax, 0xbb
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0xe3
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0x10
jb 0x40fd50
lea eax, [esp + 0x2e0]
push eax
push esi
call fcn.00402b00
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4426d0]
call fcn.004333e0
movzx eax, al
jmp dword [eax*4 + 0x4426d8]
mov word [esp + 0x2e0], 0x716d
mov byte [esp + 0x2e2], 0x8a
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e6], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 9
ja 0x40fe49
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0x42f4d442]
add eax, 0x42
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x32
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xa
jb 0x40fe00
lea eax, [esp + 0x2e0]
push eax
mov dword [esp + 0xbc], esi
push esi
call fcn.00402b00
add esp, 8
mov dword [esp + 0xb4], eax
mov word [esp + 0x2e0], 0x2e23
mov byte [esp + 0x2e2], 0xd4
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov byte [esp + 0x2eb], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xb
ja 0x40ff0e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx edx, byte [esp + ecx + 0x2e0]
lea esi, [eax + 0xeb9d]
lea ecx, [eax + edx]
add ecx, 0xeb9d
and esi, edx
add eax, 0x9d
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 + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0xb5
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xc
jb 0x40feb0
lea eax, [esp + 0x2e0]
push eax
mov esi, dword [esp + 0xbc]
push esi
call fcn.00402b00
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0xc4], ecx
push esi
call fcn.00410c30
add esp, 4
push edi
call fcn.00402f70
add esp, 4
lea edi, [esp + 0x1d0]
mov ecx, edi
push 1
call fcn.00409b10
push edi
call fcn.0041e540
add esp, 4
mov ecx, edi
call fcn.0040a4b0
lea edi, [esp + 0xc80]
mov ecx, edi
push 3
call fcn.00409b10
push edi
call fcn.0041ed20
add esp, 4
mov ecx, edi
call fcn.0040a4b0
lea edi, [esp + 0xc18]
mov ecx, edi
push 1
call fcn.00409b10
push edi
call fcn.0041ef80
add esp, 4
mov ecx, edi
call fcn.0040a4b0
lea edi, [esp + 0xbb0]
mov ecx, edi
push 1
call fcn.00409b10
push edi
call fcn.00421660
add esp, 4
push edi
call fcn.00422170
add esp, 4
push edi
call fcn.00422620
add esp, 4
mov ecx, edi
call fcn.0040a4b0
lea edi, [esp + 0xb48]
mov ecx, edi
push 1
call fcn.00409b10
push edi
call fcn.00424960
add esp, 4
mov ecx, edi
call fcn.0040a4b0
lea edi, [esp + 0xae0]
mov ecx, edi
push 1
call fcn.00409b10
push edi
call fcn.00426960
add esp, 4
push edi
call fcn.0042df80
add esp, 4
mov eax, dword [esp + 0xc4]
jmp dword [eax*4 + 0x4426f0]
push edi
call fcn.0042e180
add esp, 4
lea ecx, [esp + 0xae0]
call fcn.0040a4b0
lea eax, [esp + 0x23f]
push eax
call fcn.004341b0
add esp, 4
mov dword [esp + 0x28], 0xa4bdad6c
mov word [esp + 0x2c], 0x72ae
mov byte [esp + 0x2e], 0x30
mov word [esp + 0x2f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4100be
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax - 0x6d722957]
add eax, 0xa9
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x2e0], edx
mov eax, dword [esp + 0x2e0]
add al, 0x61
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x410080
mov eax, dword [str.c234bc615b913e9a293cde6ec0383ef1]
mov dword [esp], 0x63a7f34c
mov dword [esp + 4], 0
mov word [esp + 8], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 9
ja 0x410136
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx]
lea esi, [ecx + edx]
add esi, 0x5e4bfcb1
add ecx, 0x5e4bfcb1
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x2e0], esi
mov ecx, dword [esp + 0x2e0]
add cl, 0x29
mov edx, dword [esp + 0x14]
mov byte [esp + edx], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 0xa
jb 0x4100f0
mov ecx, dword [str.jMw1IE__AINUDE]
mov dword [esp + 0x2e0], 0x7ea65251
mov dword [esp + 0x2e4], 0x58a25053
mov dword [esp + 0x2e8], 0xb8b94cb5
mov dword [esp + 0x2ec], 0x94b4a4d
mov dword [esp + 0x2f0], 0x6eb044b6
mov dword [esp + 0x2f4], 0x1767b70
mov dword [esp + 0x2f8], 0x163ec0c4
mov byte [esp + 0x2fc], 0x5c
mov dword [esp + 0x2fd], 0
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x10]
cmp edx, 0x20
ja 0x4101fe
nop
nop
nop
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [edx + 0x58e068a8]
add edx, 0xa8
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x14]
mov esi, edx
or esi, 0x67
and edx, 0x67
add edx, esi
inc dl
mov esi, dword [esp + 0x10]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x10]
mov edx, dword [esp + 0x10]
cmp edx, 0x21
jb 0x4101b0
movzx edx, byte [esp + 0x2e0]
test dl, dl
je 0x41022b
lea ebx, [esp + 0xd0]
lea esi, [esp + 0x2e1]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x410220
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
je 0x41024b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x410240
mov byte [ebx], 0
movzx ecx, byte [esp]
test cl, cl
je 0x41026b
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x410260
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x41028b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x410280
mov byte [ebx], 0
movzx eax, byte [esp + 0x28]
test al, al
je 0x4102ab
lea ecx, [esp + 0x29]
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4102a0
mov byte [ebx], 0
movzx eax, byte [esp + 0x23f]
test al, al
je 0x4102db
lea ecx, [esp + 0x240]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4102d0
mov byte [ebx], 0
lea eax, [esp + 0xd0]
mov dword [esp + 0x2e0], 0x2bb92de3
mov dword [esp + 0x2e4], 0xd74a29ba
mov dword [esp + 0x2e8], 0xd340d539
mov dword [esp + 0x2ec], 0xdf0bd14c
mov dword [esp + 0x2f0], 0xdb43dd20
mov dword [esp + 0x2f4], 0xc72bd948
mov dword [esp + 0x2f8], 0xc3e2c502
mov dword [esp + 0x2fc], 0xcf5ec121
mov dword [esp + 0x300], 0xcb5ecd5c
mov dword [esp + 0x304], 0xf719c921
mov dword [esp + 0x308], 0xf36ef515
mov dword [esp + 0x30c], 0xff6df119
mov dword [esp + 0x310], 0xfb29fd6e
mov dword [esp + 0x314], 0xe733f960
mov dword [esp + 0x318], 0xe379e57f
mov dword [esp + 0x31c], 0xef3be17b
mov dword [esp + 0x320], 0xeb79ed06
mov dword [esp + 0x324], 0x9703e976
mov dword [esp + 0x328], 0x930f9541
mov dword [esp + 0x32c], 0x9f0a910e
mov dword [esp + 0x330], 0x9b089d71
mov dword [esp + 0x334], 0x87159977
mov dword [esp + 0x338], 0x836f8568
mov dword [esp + 0x33c], 0x8fbb816c
mov dword [esp + 0x340], 0x8b8a8dba
mov byte [esp + 0x34c], 0
mov dword [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x6c
ja 0x410475
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 + 0x7a]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add ecx, esi
add ecx, 0x2bcc1779
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
add cl, 0xaa
mov edx, dword [esp]
mov byte [esp + edx + 0x2e0], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x6d
jb 0x410430
sub ebx, eax
mov dword [esp + 0x28], 0xeb33d5e7
mov dword [esp + 0x2c], 0xef17e91a
mov word [esp + 0x30], 0xedee
mov dword [esp + 0x32], 0
mov dword [esp + 0x36], 0
mov dword [esp + 0x39], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 0x14
ja 0x4104fd
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0x505a839d]
add ecx, 0x9d
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 0xb5
mov edx, dword [esp + 0x14]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 0x15
jb 0x4104c0
lea ecx, [esp + 0xc8]
lea edx, [esp + 0xbc]
lea esi, [esp + 0x28]
push ecx
push edx
push ebx
push eax
lea ebx, [esp + 0x2f0]
push ebx
push esi
push 0x44771c
call fcn.0040ca60
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4426f8]
xor esi, esi
jmp 0x41059a
mov ecx, dword [esp + 0xc8]
mov edi, dword [esp + 0xbc]
lea eax, [ecx + ecx*2]
shr eax, 2
cmp byte [ecx + edi - 1], 0x3d
je 0x410565
mov edx, ecx
or edx, 0xfffffffe
mov esi, ecx
and esi, 0xfffffffe
add esi, edx
cmp byte [edi + esi + 1], 0x2e
jne 0x410566
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x410575
cmp ecx, 0x2e
jne 0x410576
dec eax
push eax
call fcn.00409310
add esp, 4
mov esi, eax
push eax
push edi
call fcn.00434810
add esp, 8
push dword [esp + 0xbc]
call fcn.00437bc0
add esp, 4
mov eax, dword [case.0x41052c.5]
nop
jmp eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x442710]
push esi
call fcn.00401ef0
add esp, 4
mov edi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x442718]
push esi
call fcn.00409320
add esp, 4
push edi
call fcn.004141a0
add esp, 4
push edi
call fcn.00402f70
add esp, 4
mov dword [esp + 0x2e0], 0xbede3e2
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x2e8], 0
mov word [esp + 0x2ec], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x41067e
nop
nop
mov edx, dword [esp]
mov eax, dword [esp]
movzx esi, byte [esp + eax + 0x2e0]
lea eax, [edx + 0x32ce5455]
mov ecx, eax
and ecx, esi
xor eax, esi
mov edi, 0xcd31abaa
sub edi, edx
or edi, esi
add edi, edx
add edi, ecx
sub eax, edi
lea eax, [eax + ecx*2]
add eax, 0xcd31abaa
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, eax
xor ecx, 0xac
and eax, 0x2c
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x410620
push ebx
push dword [esp + 0xbc]
call fcn.00402b00
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x442720]
xor eax, eax
cmp dword [esp + 0xb4], 0
setg al
jmp dword [eax*4 + 0x442728]
lea ecx, [esp + 0x2e0]
push 1
call fcn.00409b10
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x447a25], 0
lea eax, [eax + 1]
jne 0x4106d0
mov dword [esp + 0x28], 0xe6f4f0d0
mov dword [esp + 0x2c], 0xefea3bf3
mov word [esp + 0x30], 0x65e8
mov dword [esp + 0x32], 0
mov dword [esp + 0x36], 0
mov word [esp + 0x3a], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 0x13
ja 0x41076a
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0x5ddf2fd2]
lea edi, [ecx + 0xd2]
xor edi, esi
and esi, edx
and edi, edx
add ecx, edx
add ecx, 0x5ddf2fd2
lea edx, [edi + esi*2]
sub ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x42
mov edx, dword [esp + 0x14]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 0x14
jb 0x410720
lea esi, [esp + 0x2e0]
mov ecx, esi
push eax
push 0x447a24
lea eax, [esp + 0x30]
push eax
call fcn.00409d20
mov ecx, esi
call fcn.0040a4b0
mov ecx, esi
call fcn.00409b50
xor eax, eax
cmp dword [esp + 0xb4], 0
setg al
jmp dword [eax*4 + 0x442728]
push 0
call fcn.0043af50
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442730]
jmp dword [0x442744]
jmp dword [0x4426e4]
push edi
call fcn.00402f70
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.00402f70
add esp, 4
xor eax, eax
jmp dword [0x4426ec]
mov dword [esp + 0x28], 0x3b973993
mov dword [esp + 0x2c], 0x3fd23d9e
mov dword [esp + 0x30], 0x3b80199
mov dword [esp + 0x34], 0x7e405a5
mov dword [esp + 0x38], 0xbbd09e4
mov dword [esp + 0x3c], 0xfaf0dbe
mov dword [esp + 0x40], 0x13a411bc
mov dword [esp + 0x44], 0x17e515f2
mov dword [esp + 0x48], 0x1bb319b9
mov dword [esp + 0x4c], 0x1ffc1db4
mov dword [esp + 0x50], 0xe34fe1bb
mov dword [esp + 0x54], 0xe70ae546
mov dword [esp + 0x58], 0xeb50e941
mov dword [esp + 0x5c], 0xef0ced4d
mov dword [esp + 0x60], 0xf301f10c
mov dword [esp + 0x64], 0xf714f557
mov dword [esp + 0x68], 0xfb53f942
mov dword [esp + 0x6c], 0xff5bfd55
mov dword [esp + 0x70], 0xc377c14f
mov dword [esp + 0x74], 0xc724c576
mov dword [esp + 0x78], 0xcb7cc937
mov dword [esp + 0x7c], 0xcf39cd2a
mov dword [esp + 0x80], 0xd321d12e
mov dword [esp + 0x84], 0xd765d57c
mov dword [esp + 0x88], 0xdb6ad974
mov dword [esp + 0x8c], 0xdf7fdd7d
mov dword [esp + 0x90], 0xa340a173
mov dword [esp + 0x94], 0xa744a544
mov dword [esp + 0x98], 0xab0fa902
mov dword [esp + 0x9c], 0xaf4cad06
mov dword [esp + 0xa0], 0xb3b0b14c
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 0x83
ja 0x410978
nop
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx + 0x28]
mov esi, ecx
and esi, 0xc0110c57
xor ecx, 0x40110c57
lea ecx, [ecx + esi*2]
lea esi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 0x9f
mov edx, dword [esp + 0x14]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 0x84
jb 0x410930
movzx ecx, word [esp + 0x28]
test cx, cx
je 0x4109a1
lea ebx, [esp + 0x2e0]
lea edx, [esp + 0x2a]
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x410990
mov word [ebx], 0
movzx ecx, word [eax]
test cx, cx
je 0x4109d1
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 0x4109c0
mov word [ebx], 0
mov dword [ebx], 0x220022
mov dword [ebx + 4], 0x22
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0x44
mov dword [esp + 0x54], 1
push 0x89047569
push dword [0x448a24]
call fcn.0043b050
add esp, 8
mov ecx, eax
lea eax, [esp + 0x14]
lea edx, [esp + 0x2e0]
push eax
lea eax, [esp + 0x2c]
push eax
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442738]
mov eax, dword [esp + 0x14]
mov dword [esp], 0xb2b5b4b7
mov dword [esp + 4], 0
mov word [esp + 8], 0
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x24]
cmp ecx, 9
ja 0x410b2a
nop
nop
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
movzx esi, byte [esp + edx]
lea edx, [ecx + esi]
add edx, 0x41a15869
add ecx, 0x41a15869
and ecx, esi
add ecx, ecx
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov edx, dword [esp + 0x24]
mov byte [esp + edx], cl
inc dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
cmp ecx, 0xa
jb 0x410ae0
mov ecx, dword [0x448a30]
test ecx, ecx
je case.0x41079e.4
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x448a34]
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x410b50
inc esi
cmp ecx, esi
jne 0x410b40
jmp case.0x41079e.4
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x410bcc
jmp dword [0x442744]
lea ecx, [esp + 0xae0]
call fcn.00409b50
lea ecx, [esp + 0xb48]
call fcn.00409b50
lea ecx, [esp + 0xbb0]
call fcn.00409b50
lea ecx, [esp + 0xc18]
call fcn.00409b50
nop
nop
lea ecx, [esp + 0xae0]
call fcn.00409b50
lea ecx, [esp + 0xb48]
call fcn.00409b50
lea ecx, [esp + 0xbb0]
call fcn.00409b50
lea ecx, [esp + 0xc18]
call fcn.00409b50
jmp dword [0x442748]
jmp dword [0x442750]
push eax
push 1
push dword [0x448a38]
push ecx
call fcn.004395d0
add esp, 0x10
jmp dword [0x442744]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0xc80]
call fcn.00409b50
lea ecx, [esp + 0x1d0]
call fcn.00409b50
lea ecx, [esp + 0xc80]
call fcn.00409b50
lea ecx, [esp + 0x1d0]
call fcn.00409b50
mov al, 1
jmp dword [0x442758]
xor ebx, ebx
mov dword [esp + 0x24], esi
jmp 0x410d08
mov ecx, edi
call fcn.00409b50
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp + 0x148]
inc ebx
push esi
call fcn.00402f30
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x442768]
mov dword [esp + 0x148], ebx
jmp dword [0x442774]
push dword [esp + 0x148]
push esi
call fcn.00402f40
add esp, 8
mov word [esp + 0x60], 0x6d18
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x69], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xc
ja 0x410db1
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x60]
mov esi, ecx
and esi, 0x3332a0ee
xor ecx, 0xb332a0ee
lea ecx, [ecx + esi*2]
xor ecx, edx
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0xf0]
add cl, 0x7e
mov edx, dword [esp]
mov byte [esp + edx + 0x60], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xd
jb 0x410d70
push 3
push edi
push eax
call fcn.00402e10
add esp, 0xc
mov esi, dword [esp + 0x24]
jmp case.0x41079e.19
push 3
push edi
push ebx
call fcn.00402e10
add esp, 0xc
jmp dword [0x442778]
push dword [esp + 0x148]
push esi
call fcn.00402f40
add esp, 8
mov ebx, eax
mov word [esp + 0x60], 0x6d18
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x69], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x410dd0
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 + 0x60]
mov edx, eax
and edx, 0x3332a0ee
xor eax, 0xb332a0ee
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x7e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x410e30
jmp 0x410dd0
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442780]
mov word [esp + 0x60], 0x35ba
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov byte [esp + 0x6a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x410efe
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax - 0x121e6807]
add eax, 0xf9
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x31
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x410ec0
push edi
push ebx
call fcn.00402880
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 + 0x170]
fldcw word [esp + 0xe6]
mov eax, dword [esp + 0x170]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x442788]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x442790]
sete al
movzx eax, al
jmp dword [eax*4 + 0x442798]
mov word [esp + 0x60], 0x2d57
mov dword [esp + 0x62], 0
mov dword [esp + 0x65], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x410fe1
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 + 0x60]
lea edx, [eax + ecx]
add edx, 0xf1aed426
add eax, 0xf1aed426
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xf6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x410fa0
push 2
push edi
push ebx
call fcn.00402e10
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x442880]
mov word [esp + 0xf0], 0x2556
mov dword [esp + 0xf2], 0
mov dword [esp + 0xf6], 0
mov word [esp + 0xfa], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0xb
ja 0x41108e
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx + 0xf0]
lea edx, [eax + 0xeba5]
lea esi, [eax + 0xa5]
xor esi, edx
and edx, ecx
and esi, ecx
add eax, ecx
add eax, 0xeba5
lea ecx, [esi + edx*2]
sub eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x7d
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 0xf0], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0xc
jb 0x411040
push 2
lea eax, [esp + 0xf4]
push eax
push ebx
call fcn.00402e10
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
mov dl, 1
jmp dword [ecx*4 + 0x442888]
mov word [esp], 0x1181
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov byte [esp + 0xe], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 0xe
ja 0x41113e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx edx, byte [esp + ecx]
lea esi, [eax - 0x3dee5dfd]
lea ecx, [eax + edx]
add ecx, 0xc211a203
and esi, edx
add eax, 3
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 + 0x38], eax
mov eax, dword [esp + 0x38]
add al, 0xeb
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 0xf
jb 0x4110f0
push 5
lea eax, [esp + 4]
push eax
push ebx
call fcn.00402e10
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
mov dl, 1
jmp dword [ecx*4 + 0x442890]
mov word [esp + 0x38], 0x39ac
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov word [esp + 0x42], 0
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xc8]
cmp eax, 0xb
ja 0x411206
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc8]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, eax
and edx, 0xeba7
xor eax, 0xeba7
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0x6f
mov ecx, dword [esp + 0xc8]
mov byte [esp + ecx + 0x38], al
mov eax, dword [esp + 0xc8]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
cmp eax, 0xc
jb 0x4111a0
push 2
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.00402e10
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x442898]
mov word [esp + 0x48], 0x2d80
mov dword [esp + 0x4a], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x51], 0
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x34]
cmp eax, 0xc
ja 0x4112a2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x5a]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xb3e8465a
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0x8a
mov ecx, dword [esp + 0x34]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x34]
mov eax, dword [esp + 0x34]
cmp eax, 0xd
jb 0x411260
push 3
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.00402e10
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x4428a0]
mov word [esp + 0xc8], 0xb2a6
mov byte [esp + 0xca], 0xa
mov dword [esp + 0xcb], 0
mov dword [esp + 0xcf], 0
mov dword [esp + 0xd2], 0
mov dword [esp + 0xdc], 0
mov eax, dword [esp + 0xdc]
cmp eax, 0xd
ja 0x411365
nop
nop
nop
nop
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xdc]
movzx ecx, byte [esp + ecx + 0xc8]
lea edx, [eax + ecx]
add edx, 0xdb4024aa
add eax, 0xdb4024aa
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x34]
add al, 0x5a
mov ecx, dword [esp + 0xdc]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0xdc]
mov eax, dword [esp + 0xdc]
cmp eax, 0xe
jb 0x411310
push 3
lea eax, [esp + 0xcc]
push eax
push ebx
call fcn.00402e10
add esp, 0xc
test eax, eax
sete dl
mov eax, dword [case.0x4112bb.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
movzx eax, dl
jmp dword [eax*4 + 0x4428b8]
mov word [esp + 0x60], 0x35af
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x6a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x411416
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax - 0x28b75157]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0xd748aea8
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x61
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x4113d0
push edi
push ebx
call fcn.00402740
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x60], 0x9908
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x6a], 0
mov word [esp + 0x6e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4114a1
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + ecx]
add edx, 0xcf3fe76c
add eax, 0xcf3fe76c
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xc
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411460
push edi
push ebx
call fcn.00402740
add esp, 8
mov dword [esp + 0x30], eax
mov word [esp + 0x60], 0x992d
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov word [esp + 0x6a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x41151e
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0xebbc]
add eax, 0xbc
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xdc
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4114e0
push edi
push ebx
call fcn.004029c0
add esp, 8
mov esi, eax
mov word [esp + 0x60], 0xb530
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x6a], 0
mov byte [esp + 0x6e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x4115a1
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + ecx]
add edx, 0x19e0fab9
add eax, 0x19e0fab9
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xf1
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x411560
push edi
push ebx
call fcn.00402740
add esp, 8
mov dword [esp + 0xd8], eax
mov word [esp + 0x60], 0xda8
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x6a], 0
mov byte [esp + 0x6e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x411631
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + ecx]
add edx, 0xadb48afe
add eax, 0xadb48afe
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xe
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x4115f0
push edi
push ebx
call fcn.00402880
add esp, 8
fnstcw word [esp + 0xee]
movzx eax, word [esp + 0xee]
or eax, 0xc00
mov word [esp + 0x156], ax
fldcw word [esp + 0x156]
fistp dword [esp + 0x164]
fldcw word [esp + 0xee]
mov eax, dword [esp + 0x164]
mov dword [esp + 0x2c], eax
mov word [esp + 0x60], 0x6c20
mov byte [esp + 0x62], 0xf8
mov dword [esp + 0x63], 0
mov dword [esp + 0x67], 0
mov byte [esp + 0x6b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x4116f0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0xebbf]
add eax, 0xbf
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xc7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4116b0
mov dword [esp + 0x20], esi
push edi
push ebx
call fcn.00402880
add esp, 8
mov ebx, 0xfffffffe
xor eax, eax
mov ecx, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411710
fnstcw word [esp + 0xec]
movzx ecx, word [esp + 0xec]
or ecx, 0xc00
mov word [esp + 0x154], cx
fldcw word [esp + 0x154]
fistp dword [esp + 0x160]
fldcw word [esp + 0xec]
mov ecx, dword [esp + 0x160]
mov dword [esp + 0x28], ecx
lea esi, [eax - 1]
lea ecx, [ebx + 2]
test eax, eax
jns 0x411768
mov ecx, 0xffffffff
push ecx
call fcn.00409310
add esp, 4
mov edx, eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x411799
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 0x411790
mov dword [esp + 0x60], 0
add ebx, edx
mov edi, edx
mov dword [esp + 0x14], edx
cmp ebx, edx
jbe 0x411801
mov edi, dword [esp + 0x14]
test esi, esi
jle 0x411801
mov edx, ecx
add edx, esi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x411801
lea eax, [esp + 0x60]
push eax
push edx
push ecx
mov esi, ecx
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x60]
mov word [edi], cx
add edi, 2
cmp edi, ebx
jae 0x411801
add esi, eax
mov edx, dword [esp + 0x1c]
cmp esi, edx
mov ecx, esi
jb 0x4117d0
mov word [edi], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
lea ecx, [esp + 0xf0]
mov esi, dword [esp + 0x14]
push esi
call fcn.00437ca0
jmp dword [0x4428c0]
push esi
call fcn.00409320
add esp, 4
lea ecx, [esp + 0xf0]
push 0x400
call fcn.00437f00
not eax
shr eax, 0x1f
lea edi, [esp + 0x60]
jmp dword [eax*4 + 0x4428c8]
mov esi, dword [esp + 0x24]
jmp dword [0x442948]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x4427a0]
mov word [esp + 0x60], 0x21b6
mov dword [esp + 0x62], 0
mov dword [esp + 0x65], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x411901
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 + 0x60]
lea edx, [eax + ecx]
add eax, 0xfb
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x9a71bffb
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x23
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4118c0
push edi
push ebx
call fcn.00402740
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x60], 0x2da2
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x6a], 0
mov word [esp + 0x6e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41198d
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 + 0x60]
lea edx, [eax + 0x26]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xe1d58326
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xf6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411950
push edi
push ebx
call fcn.00402740
add esp, 8
mov dword [esp + 0x1c], eax
mov ecx, eax
mov eax, dword [case.0x412e9a.32]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
mov edx, dword [esp + 0x18]
test edx, edx
sete al
jmp dword [eax*4 + 0x442968]
xor eax, eax
cmp dword [esp + 0x1c], 0
sete al
jmp dword [eax*4 + 0x442970]
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x4119e0
mov dword [esp + 0x14], ecx
mov eax, esi
sub eax, edx
xor ebx, ebx
mov dword [esp + 0x28], eax
test eax, eax
jle 0x411a37
cmp byte [edx], 0
je 0x411a37
xor ebx, ebx
mov edi, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x60], 0
lea eax, [esp + 0x60]
push eax
push esi
push edi
call fcn.0040f5d0
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x411a37
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411a10
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411a45
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov dword [esp + 0x60], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ecx
cmp ecx, eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
jbe 0x412eed
mov ebx, dword [esp + 0x2c]
cmp dword [esp + 0x28], 0
jle 0x412eed
mov ebx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412eed
lea eax, [esp + 0x60]
push eax
push esi
push edi
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x60]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x20]
jae 0x412ee9
add edi, eax
cmp edi, esi
mov eax, dword [esp + 0x14]
jb 0x411a90
jmp 0x412eed
mov word [esp + 0x60], 0x7916
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x6a], 0
mov word [esp + 0x6e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x411b4e
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 + 0x60]
lea edx, [eax + 0x42328eef]
add eax, 0xef
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x77
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411b10
push edi
push ebx
call fcn.00402740
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x60], 0xcd52
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov byte [esp + 0x6a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x411bdd
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x5d9ed9e]
add eax, 0x9e
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
mov ecx, eax
or ecx, 0xad
and eax, 0xad
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x411b90
push edi
push ebx
call fcn.00402740
add esp, 8
xor ecx, ecx
mov edx, dword [esp + 0x1c]
test edx, edx
sete cl
jmp dword [ecx*4 + 0x442a38]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442a40]
mov dword [esp + 0x18], eax
mov eax, edx
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x411c10
mov eax, ebx
sub eax, edx
xor edi, edi
mov dword [esp + 0x20], eax
test eax, eax
jle 0x411c67
cmp byte [edx], 0
je 0x411c67
xor edi, edi
mov esi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x60], 0
lea eax, [esp + 0x60]
push eax
push ebx
push esi
call fcn.0040f5d0
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, ebx
jae 0x411c67
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x411c40
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411c75
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov dword [esp + 0x60], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ecx
cmp ecx, eax
mov esi, dword [esp + 0x1c]
jbe 0x411cdb
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x20], 0
jle 0x411cdb
mov edi, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x411cdb
lea eax, [esp + 0x60]
push eax
push ebx
push esi
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x60]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x411cdb
add esi, eax
cmp esi, ebx
jb 0x411cb0
mov word [edi], 0
mov edi, 0xfffffffe
xor eax, eax
mov ecx, dword [esp + 0x18]
nop
nop
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411cf0
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x411d0b
mov ecx, 0xffffffff
push ecx
call fcn.00409310
add esp, 4
mov dword [esp + 0x28], eax
cmp dword [esp + 0x18], 0
jne 0x411d39
mov ebx, dword [esp + 0x18]
not ebx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x411d30
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x28]
add edi, eax
mov esi, eax
cmp edi, eax
mov eax, dword [esp + 0x18]
jbe 0x411da1
mov esi, dword [esp + 0x28]
test ebx, ebx
jle 0x411da1
mov ecx, eax
add ecx, ebx
mov esi, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax], 0
je 0x411da1
mov ebx, eax
lea eax, [esp + 0x60]
push eax
push ecx
push ebx
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x60]
mov word [esi], cx
add esi, 2
cmp esi, edi
jae 0x411da1
add ebx, eax
mov ecx, dword [esp + 0x1c]
cmp ebx, ecx
mov eax, ebx
jb 0x411d70
mov word [esi], 0
mov word [esp + 0x60], 0x1d05
mov byte [esp + 0x62], 0x94
mov dword [esp + 0x63], 0
mov word [esp + 0x67], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x411e11
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + ecx]
add edx, 0x72911d6d
add eax, 0x72911d6d
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 5
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb case.default.0x411e40
lea edi, [esp + 0x60]
push edi
push dword [ebp + 8]
call fcn.004029c0
add esp, 8
xor ecx, ecx
mov dword [esp + 0x2c], eax
test eax, eax
setne cl
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x24]
jmp dword [ecx*4 + 0x442a48]
mov ecx, edi
push 3
call fcn.00409b10
push dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
push ebx
push dword [esp + 0x30]
push dword [esp + 0x3c]
push edi
call fcn.00418ed0
add esp, 0x14
mov ecx, edi
call fcn.0040a4b0
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x442aa8]
mov edx, ebx
lea esi, [ebx - 4]
mov eax, dword [ebx - 4]
lea ecx, [eax + eax*2]
lea edi, [ebx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442ab0]
push esi
call fcn.00409320
add esp, 4
lea edi, [esp + 0x60]
mov esi, dword [esp + 0x24]
jmp dword [0x442ac0]
jmp dword [0x442ac8]
xor eax, eax
cmp edi, edx
sete al
jmp dword [eax*4 + 0x442ab8]
mov eax, dword [edi - 0xc]
add edi, 0xfffffff4
test eax, eax
je 0x411ec0
push eax
call fcn.00409320
mov edx, dword [esp + 0x1c]
add esp, 4
jmp 0x411ec0
sete al
movzx eax, al
jmp dword [eax*4 + 0x4427a8]
mov word [esp + 0x60], 0x65f6
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov word [esp + 0x6a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x411f70
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 + 0x60]
lea edx, [eax + 0x91]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xeb91
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 9
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x411f30
push 2
push edi
push ebx
call fcn.00402e10
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x4427b0]
mov word [esp + 0xf0], 0xd9ad
mov dword [esp + 0xf2], 0
mov dword [esp + 0xf6], 0
mov dword [esp + 0xfa], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0xd
ja 0x41200f
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx + 0xf0]
lea edx, [eax + 0x16c4625c]
add eax, 0x5c
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp], edx
mov eax, dword [esp]
add al, 0x7c
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 0xf0], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0xe
jb 0x411fd0
push 5
lea eax, [esp + 0xf4]
push eax
push ebx
call fcn.00402e10
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x4427b8]
mov word [esp], 0xb530
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov word [esp + 0xe], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 0xf
ja 0x4120b2
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx]
add eax, 0x62a939e9
mov edx, eax
and edx, ecx
mov esi, eax
xor esi, ecx
or eax, ecx
xor eax, esi
lea ecx, [esi + edx*2]
add eax, edx
sub ecx, eax
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x38]
add al, 0xa1
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 0x10
jb 0x412070
push 2
lea eax, [esp + 4]
push eax
push ebx
call fcn.00402e10
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x24]
mov dl, 1
jmp dword [ecx*4 + 0x4427c0]
jmp dword [0x4427c8]
mov word [esp + 0x38], 0xf9a2
mov dword [esp + 0x3e], 0
mov dword [esp + 0x3a], 0
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xc8]
cmp eax, 9
ja 0x41216c
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc8]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0xdf]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x144bc1df
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, eax
xor ecx, 0xe6
and eax, 0x66
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xc8]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xc8]
mov eax, dword [esp + 0xc8]
cmp eax, 0xa
jb 0x412110
push 3
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.00402e10
add esp, 0xc
jmp case.0x4120cf.2
push 3
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.00402e10
add esp, 0xc
jmp dword [0x4427d4]
mov word [esp + 0x38], 0xf9a2
mov dword [esp + 0x3e], 0
mov dword [esp + 0x3a], 0
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xc8]
cmp eax, 9
ja 0x412180
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc8]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0xdf]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x144bc1df
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, eax
xor ecx, 0xe6
and eax, 0x66
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xc8]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xc8]
mov eax, dword [esp + 0xc8]
cmp eax, 0xa
jb 0x4121d0
jmp 0x412180
mov dword [esp + 0x48], 0
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x60], 0xb2b5b4b7
mov dword [esp + 0x64], 0
mov word [esp + 0x68], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 9
ja 0x4122b8
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x38]
movzx esi, byte [esp + edx + 0x60]
lea edx, [eax + esi]
add edx, 0x41a15869
add eax, 0x41a15869
and eax, esi
add eax, eax
mov esi, edx
not esi
and esi, eax
not eax
and eax, edx
sub eax, esi
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x21
mov edx, dword [esp + 0x38]
mov byte [esp + edx + 0x60], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0xa
jb 0x412270
mov eax, dword [esp + 0x60]
mov edx, dword [0x448a30]
test edx, edx
je 0x4122e6
xor esi, esi
mov edi, dword [0x448a34]
nop
nop
cmp dword [edi + esi*8], 0x68655b54
je 0x412eb3
inc esi
cmp edx, esi
jne case.default.0x4122f4
lea edi, [esp + 0x60]
mov esi, dword [esp + 0x24]
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x4428d0]
jmp dword [0x442948]
push dword [esp + 0x2c]
call fcn.00402f30
add esp, 4
mov ecx, eax
mov dword [esp + 0x20], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x41232e
mov esi, eax
test dl, dl
jne 0x412334
mov ecx, esi
push ecx
call fcn.00409310
add esp, 4
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x18], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442a50]
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x18]
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 + 0x442a58]
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 + 0x442a58]
mov eax, dword [case.0x411e40.8]
mov esi, dword [esp + 0x24]
nop
nop
jmp eax
xor ecx, ecx
mov eax, dword [case.0x412e9a.102]
jmp case.0x412e9a.100
lea edi, [esp + 0x60]
mov word [edx], 0
mov ecx, dword [esp + 0x14]
inc ecx
mov eax, dword [case.0x412e9a.102]
mov esi, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, dword [esp + 0x20]
setb al
jmp dword [eax*4 + 0x442a80]
mov dword [esp + 0x14], ecx
push ecx
push dword [esp + 0x30]
call fcn.00402f40
add esp, 8
mov ebx, eax
mov word [esp + 0x60], 0x1711
mov byte [esp + 0x62], 0xb8
mov dword [esp + 0x67], 0
mov dword [esp + 0x63], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x412481
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + ecx]
add edx, 0xedec6ec7
add eax, 0xedec6ec7
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x8f
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x412440
push edi
push ebx
call fcn.00402740
add esp, 8
mov esi, eax
mov word [esp + 0x60], 0xdbcd
mov byte [esp + 0x62], 0x54
mov dword [esp + 0x63], 0
mov dword [esp + 0x67], 0
mov dword [esp + 0x6a], 0
jmp dword [0x442a88]
mov word [esp + 0x60], 0xcdc1
mov byte [esp + 0x62], pe_nt_image_headers32
mov dword [esp + 0x63], 0
mov word [esp + 0x67], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x412530
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 + 0x60]
lea edx, [eax - 0x2b1d2531]
and edx, ecx
add eax, ecx
add eax, 0xd4e2dacf
add edx, edx
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x57
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4124f0
push edi
push ebx
call fcn.00402740
add esp, 8
mov word [esp + 0x60], 0xcdc1
mov byte [esp + 0x62], pe_nt_image_headers32
mov dword [esp + 0x63], 0
mov word [esp + 0x67], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4125b0
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 + 0x60]
lea edx, [eax - 0x2b1d2531]
and edx, ecx
add eax, ecx
add eax, 0xd4e2dacf
add edx, edx
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x57
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x412570
push edi
push ebx
call fcn.00402740
add esp, 8
jmp dword [0x442aa4]
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x18]
mov dword [edx + ecx*4], 0
mov dword [edx + ecx*4 + 4], esi
lea ebx, [edx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov esi, 0xfffffffe
xor eax, eax
mov ecx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
add esi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x4125f0
lea edi, [eax - 1]
lea ecx, [esi + 2]
test eax, eax
jns 0x41260b
mov ecx, 0xffffffff
push ecx
call fcn.00409310
add esp, 4
mov edx, eax
mov dword [ebx], eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x412639
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 0x412630
mov dword [esp + 0x60], 0
add esi, edx
cmp esi, edx
jbe 0x4123cb
test edi, edi
jle 0x4123cb
mov ebx, ecx
add ebx, edi
lea edi, [esp + 0x60]
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4123cf
push edi
push ebx
push ecx
mov edi, ecx
mov dword [esp + 0x28], edx
call fcn.0040f5d0
mov edx, dword [esp + 0x28]
add esp, 0xc
movzx ecx, word [esp + 0x60]
mov word [edx], cx
add edx, 2
cmp edx, esi
jae 0x4123cb
add edi, eax
cmp edi, ebx
mov ecx, edi
lea edi, [esp + 0x60]
jb 0x412660
jmp 0x4123cf
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja case.0x412e9a.106
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 + 0x60]
lea edx, [eax + 0x4d]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x6c42134d
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xe5
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x4126c0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x41274d
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x4d]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x6c42134d
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xe5
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x412710
jmp dword [0x442a94]
push edi
push ebx
call fcn.00402740
add esp, 8
mov dword [esp + 0x1c], eax
jmp dword [0x442a9c]
jmp dword [0x442ac0]
push dword [esp + 0x30]
call fcn.00409320
add esp, 4
jmp dword [0x442ac8]
push dword [esp + 0x28]
call fcn.00409320
add esp, 4
jmp case.0x412e9a.123
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x4427d8]
mov word [esp + 0x48], 0xccc0
mov byte [esp + 0x4a], pe_nt_image_headers32
mov dword [esp + 0x4b], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x34]
cmp eax, 9
ja 0x412820
nop
nop
nop
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0x38249a0f]
add eax, 0xf
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xc8]
mov ecx, eax
or ecx, 0x96
and eax, 0x96
add eax, ecx
inc al
mov ecx, dword [esp + 0x34]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x34]
mov eax, dword [esp + 0x34]
cmp eax, 0xa
jb 0x4127d0
push 3
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.00402e10
add esp, 0xc
test eax, eax
sete dl
mov eax, dword [case.0x4120cf.11]
nop
nop
nop
nop
nop
nop
jmp eax
movzx eax, dl
jmp dword [eax*4 + 0x4427f0]
mov word [esp + 0x60], 0x65f6
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x4128c7
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 + 0x60]
lea edx, [eax - 0x4d7ba3cf]
lea esi, [eax + 0x31]
or edx, esi
and esi, ecx
and edx, ecx
add edx, esi
add eax, ecx
add eax, 0xb2845c31
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xa9
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x412880
push edi
push ebx
call fcn.00402740
add esp, 8
mov dword [esp + 0x2c], eax
mov word [esp + 0x60], 0x198d
mov dword [esp + 0x66], 0
mov dword [esp + 0x62], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x41293c
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x8f4e92c]
add eax, 0x2c
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xcc
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x412900
push edi
push ebx
call fcn.004029c0
add esp, 8
mov dword [esp + 0x158], eax
mov word [esp + 0x60], 0x6dea
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x69], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x4129c1
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x52]
and edx, ecx
mov esi, 0x4c36b8ad
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 0xf0], esi
mov eax, dword [esp + 0xf0]
add al, 0xc2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x412980
push edi
push ebx
call fcn.00402740
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x60], 0x59e4
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x412a3d
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 + 0x60]
lea edx, [eax + 0x74]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x4780e74
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xd4
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x412a00
push edi
push ebx
call fcn.00402880
add esp, 8
fnstcw word [esp + 0xea]
movzx eax, word [esp + 0xea]
or eax, 0xc00
mov word [esp + 0x152], ax
fldcw word [esp + 0x152]
fistp dword [esp + 0x16c]
fldcw word [esp + 0xea]
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x30], eax
mov word [esp + 0x60], 0x504c
mov byte [esp + 0x62], 0x24
mov dword [esp + 0x63], 0
mov dword [esp + 0x67], 0
mov dword [esp + 0x6b], 0
mov byte [esp + 0x6f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x412b0e
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x60]
mov ecx, 0x9327155a
sub ecx, eax
add eax, 0xa5
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0xf0], ecx
mov eax, dword [esp + 0xf0]
mov ecx, eax
xor ecx, 0x7c
and eax, 0x7c
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x412ac0
push edi
push ebx
call fcn.00402880
add esp, 8
fnstcw word [esp + 0xe8]
movzx eax, word [esp + 0xe8]
or eax, 0xc00
mov word [esp + 0x150], ax
fldcw word [esp + 0x150]
fistp dword [esp + 0x168]
fldcw word [esp + 0xe8]
mov eax, dword [esp + 0x168]
mov dword [esp + 0xe0], eax
mov word [esp + 0x60], 0xb5b8
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov word [esp + 0x6a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x412bd0
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 + 0x60]
lea edx, [eax + 0xab]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xebab
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x53
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x412b90
push edi
push ebx
call fcn.00402b00
add esp, 8
mov dword [esp + 0xd8], eax
mov edi, 0xffffffff
mov eax, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
cmp byte [eax + edi + 1], 0
lea edi, [edi + 1]
jne 0x412bf0
mov edx, eax
add edx, edi
xor ebx, ebx
test edi, edi
mov dword [esp + 0x1c], edx
jle 0x412c4b
cmp byte [eax], 0
je 0x412c4b
xor ebx, ebx
mov esi, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x60], 0
lea eax, [esp + 0x60]
push eax
push edx
push esi
call fcn.0040f5d0
mov edx, dword [esp + 0x28]
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edx
jae 0x412c4b
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x412c20
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x412c59
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov dword [esp + 0x60], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
jbe 0x413763
mov esi, dword [esp + 0x5c]
test edi, edi
jle 0x413763
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x20], ebx
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x413763
lea eax, [esp + 0x60]
push eax
push edx
push ecx
mov edi, ecx
mov ebx, edx
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x60]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x18]
jae 0x41375f
add edi, eax
cmp edi, ebx
mov ecx, edi
mov edx, ebx
mov ebx, dword [esp + 0x20]
jb 0x412ca0
jmp 0x413763
mov eax, dword [esp + 0x48]
add eax, 2
push eax
call fcn.00437b10
add esp, 4
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x48]
add ecx, 2
mov edx, dword [esp + 0xf0]
mov dword [esp + 0x60], 0xb2b5b4b7
mov dword [esp + 0x64], 0
mov word [esp + 0x68], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 9
ja 0x412d78
nop
nop
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x38]
movzx edi, byte [esp + esi + 0x60]
lea esi, [eax + edi]
add esi, 0x41a15869
add eax, 0x41a15869
and eax, edi
add eax, eax
mov edi, esi
not edi
and edi, eax
not eax
and eax, esi
sub eax, edi
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x21
mov esi, dword [esp + 0x38]
mov byte [esp + esi + 0x60], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0xa
jb 0x412d30
mov eax, dword [esp + 0x60]
mov esi, dword [0x448a30]
test esi, esi
je 0x412da2
xor edi, edi
mov ebx, dword [0x448a34]
nop
nop
cmp dword [ebx + edi*8], 0x68655b54
je 0x413caf
inc edi
cmp esi, edi
jne 0x412d90
lea edi, [esp + 0x60]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4428d8]
mov ecx, dword [esp + 0x30]
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x412dc0
sub esi, ecx
mov eax, esi
inc eax
mov dword [esp + 0x18], eax
lea eax, [esi + esi + 2]
mov ebx, ecx
jns 0x412dde
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov edi, esi
test ebx, ebx
mov edx, ebx
jne 0x412e09
mov edi, edx
not edi
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x412e00
mov dword [esp + 0x60], 0
lea ecx, [eax + esi*2]
mov ebx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jbe 0x412e6f
mov ebx, dword [esp + 0x14]
test edi, edi
jle 0x412e6f
mov eax, edx
add eax, edi
mov edi, eax
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x412e6f
lea eax, [esp + 0x60]
push eax
push edi
push edx
mov esi, edx
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x60]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x1c]
jae 0x412e6f
add esi, eax
cmp esi, edi
mov edx, esi
jb 0x412e40
mov word [ebx], 0
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 4]
mov dword [esp + 0x1c], edx
movzx eax, word [eax]
and eax, 0xfffffffe
lea edi, [edx + eax]
add edi, 0xfffffffe
mov ecx, dword [case.0x412e9a.6]
xor ebx, ebx
cmp edi, edx
setae bl
mov edx, edi
jmp dword [ebx*4 + 0x4428e0]
xor eax, eax
cmp word [edx], 0
setne al
mov ebx, edi
jmp dword [eax*4 + 0x4428e8]
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
lea edi, [esp + 0x60]
mov esi, dword [esp + 0x24]
je 0x4122ea
lea eax, [esp + 0x48]
push eax
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x448a38]
push edx
call fcn.004395d0
add esp, 0x20
jmp 0x4122ea
mov eax, dword [esp + 0x14]
mov word [ebx], 0
mov esi, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + esi + 1], 0
lea esi, [esi + 1]
jne 0x412f00
add dword [esp + 0x1c], esi
xor edi, edi
mov dword [esp + 0x20], esi
test esi, esi
jle 0x412f5b
cmp byte [eax], 0
je 0x412f5b
xor edi, edi
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x60], 0
lea eax, [esp + 0x60]
push eax
mov esi, dword [esp + 0x20]
push esi
push ebx
call fcn.0040f5d0
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x412f5b
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x412f30
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x412f69
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov dword [esp + 0x60], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
mov ebx, dword [esp + 0x14]
jbe 0x412fcf
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x20], 0
jle 0x412fcf
mov edi, dword [esp + 0x28]
nop
nop
cmp byte [ebx], 0
je 0x412fcf
lea eax, [esp + 0x60]
push eax
mov esi, dword [esp + 0x20]
push esi
push ebx
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x60]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x412fcf
add ebx, eax
cmp ebx, esi
jb 0x412fa0
mov word [edi], 0
mov word [esp + 0x60], 0x35c1
mov byte [esp + 0x62], 0xaa
mov dword [esp + 0x63], 0
mov dword [esp + 0x67], 0
mov byte [esp + 0x6b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x413050
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 + 0x60]
lea edx, [eax + 0xba]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xebba
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xea
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x413010
lea eax, [esp + 0x60]
push eax
push dword [ebp + 8]
call fcn.004029c0
add esp, 8
xor ecx, ecx
mov dword [esp + 0x20], eax
test eax, eax
setne cl
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov ebx, 0x51eb851f
jmp dword [ecx*4 + 0x442978]
push dword [esp + 0x20]
call fcn.00402f30
add esp, 4
mov ecx, eax
mov dword [esp + 0x14], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x4130b4
mov esi, eax
test dl, dl
jne 0x4130ba
mov ecx, esi
push ecx
call fcn.00409310
add esp, 4
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x18], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442980]
mov eax, dword [esp + 0x14]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x18]
lea eax, [ecx + eax*4]
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 + 0x442988]
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 + 0x442988]
xor esi, esi
xor eax, eax
cmp esi, dword [esp + 0x14]
setb al
jmp dword [eax*4 + 0x442990]
jmp dword [0x4429a4]
jmp dword [0x4429b4]
lea edi, [esp + 0x60]
mov ecx, edi
push 2
call fcn.00409b10
push dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
push esi
push dword [esp + 0x30]
push dword [esp + 0x38]
push edi
call fcn.00416350
add esp, 0x14
mov ecx, edi
call fcn.0040a4b0
movzx eax, al
jmp dword [eax*4 + 0x4429b8]
mov eax, dword [esp + 0x64]
mov byte [esp + 0x42], 0
cmp eax, 0x3ff
ja 0x4133a4
mov byte [esp + 0x41], 0x30
lea esi, [esp + 0x41]
jmp 0x413425
lea eax, [esp + 0x60]
push eax
push edi
call fcn.00402b00
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [esi + esi*2]
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + eax*4]
push edx
push dword [esp + 0x20]
push ebx
call fcn.00415e60
inc esi
xor eax, eax
cmp esi, dword [esp + 0x14]
setb al
mov ebx, 0x51eb851f
jmp dword [eax*4 + 0x442990]
push esi
push dword [esp + 0x24]
call fcn.00402f40
add esp, 8
mov edi, eax
mov word [esp + 0x60], 0xc7c1
mov byte [esp + 0x62], pe_nt_image_headers32
lea eax, [esp + 0x63]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x41327d
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x4f]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xe0864f
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xd7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x413240
lea eax, [esp + 0x60]
push eax
push edi
call fcn.00402740
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x60], 0xb79
mov byte [esp + 0x62], 0x90
lea eax, [esp + 0x63]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4132fd
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 0x43]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x56416543
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x2b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4132c0
lea eax, [esp + 0x60]
push eax
push edi
call fcn.00402740
add esp, 8
mov ebx, eax
mov dword [esp + 0x60], 0x3b9a9d9a
lea eax, [esp + 0x63]
mov word [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x4131c0
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + 7]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xba16507
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
mov ecx, eax
xor ecx, 0xce
and eax, 0x4e
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x413340
jmp 0x4131c0
xor eax, eax
test esi, esi
sete al
mov ebx, esi
mov esi, dword [esp + 0x24]
jmp dword [eax*4 + 0x4429c0]
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0x42]
cmp eax, 0x19000
jb 0x4133f9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
mul ebx
shr edx, 5
imul eax, edx, 0x64
mov edi, ecx
sub edi, eax
movzx eax, word [edi + edi + 0x43f528]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x4133c0
cmp edx, 9
ja 0x413400
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x413425
mov edx, ecx
cmp edx, 9
jbe 0x4133ec
mov eax, edx
and eax, 2
mov ecx, edx
or edx, 2
imul edx, eax
xor eax, 2
and ecx, 0xfffffffd
imul ecx, eax
movzx eax, word [ecx + edx + 0x43f528]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov ebx, dword [esp + 0x18]
mov dword [esp], 0x3348738b
mov dword [esp + 4], 0
mov byte [esp + 8], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 8
ja 0x41349a
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx edx, byte [esp + ecx]
lea ecx, [eax + 0x3b085a88]
mov edi, ecx
and edi, edx
xor ecx, edx
add eax, 0x88
and eax, edx
add eax, edi
sub ecx, eax
lea eax, [ecx + edi*2]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x48
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 9
jb 0x413450
mov dword [esp + 0xf0], 0xddd2eefb
mov dword [esp + 0xf4], 0x2febdfdb
mov dword [esp + 0xf8], 0x1fe3eae4
mov dword [esp + 0xfc], 0x23d01519
mov dword [esp + 0x100], 0x1021d527
mov dword [esp + 0x104], 0x1ad81d28
mov dword [esp + 0x108], 0x302d2b16
mov dword [esp + 0x10c], 0xc7333a0d
mov dword [esp + 0x110], 0x6010236
mov dword [esp + 0x114], 0x3bc83d01
mov dword [esp + 0x118], 0x3b38cd3f
mov dword [esp + 0x11c], 0x3c05f139
mov dword [esp + 0x120], 0xd3f0f00
mov dword [esp + 0x124], 0xe0cf9f6
mov dword [esp + 0x128], 0xe3303a0a
mov dword [esp + 0x12c], 0x2a252612
mov dword [esp + 0x130], 0x1ee4112d
mov dword [esp + 0x134], 0xd1231725
mov word [esp + 0x138], 0x8dee
mov dword [esp + 0x141], 0
mov dword [esp + 0x13e], 0
mov dword [esp + 0x13a], 0
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xc8]
cmp eax, 0x54
ja 0x413602
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc8]
movzx ecx, byte [esp + ecx + 0xf0]
lea edx, [eax + 0x20d45f5]
add eax, 0xf5
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0x4d
mov ecx, dword [esp + 0xc8]
mov byte [esp + ecx + 0xf0], al
inc dword [esp + 0xc8]
mov eax, dword [esp + 0xc8]
cmp eax, 0x55
jb 0x4135b0
lea eax, [0x447a23]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x413610
movzx ecx, byte [esp + 0xf0]
test cl, cl
je 0x413642
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0xf1]
inc edx
test cl, cl
jne 0x413630
add eax, edx
lea edi, [esp + 0x60]
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x41366b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x413660
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x41368d
lea edx, [esp + 1]
mov esi, dword [esp + 0x24]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x413680
jmp 0x413691
mov esi, dword [esp + 0x24]
mov byte [eax], 0
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4429c0]
jmp dword [0x4429d4]
lea esi, [ebx - 4]
mov eax, dword [ebx - 4]
lea ecx, [eax + eax*2]
lea edi, [ebx + ecx*4]
mov ecx, dword [case.0x412e9a.65]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4429e8]
push esi
call fcn.00409320
add esp, 4
lea edi, [esp + 0x60]
mov esi, dword [esp + 0x24]
mov eax, dword [case.0x412e9a.72]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x442a08]
push dword [esp + 0x28]
call fcn.00409320
add esp, 4
jmp dword [0x442a10]
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x4429f0]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x41373e
push eax
call fcn.00409320
add esp, 4
mov eax, dword [edi - 8]
add edi, 0xfffffff4
test eax, eax
je 0x413720
push eax
call fcn.00409320
add esp, 4
jmp 0x413720
jmp dword [0x442a10]
jmp dword [0x442a1c]
mov ebx, dword [esp + 0x20]
mov word [esi], 0
mov eax, esp
push eax
push 0
push 0
push ebx
mov edi, dword [esp + 0x6c]
push edi
push 0
call dword [0x448a2c]
mov esi, dword [esp]
lea eax, [esi + esi]
test esi, esi
jns 0x41378c
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov ecx, eax
mov eax, esp
push eax
push esi
mov dword [esp + 0x30], ecx
push ecx
push ebx
push edi
push 0
call dword [0x448a2c]
jmp dword [0x4427f8]
push edi
call fcn.00409320
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, ecx
jmp dword [0x442800]
mov ecx, dword [esp + 0x14]
mov eax, ecx
jmp dword [0x442800]
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
lea edi, [esp + 0x60]
je 0x412da6
push 0
push ecx
push dword [esp + 0x64]
push 0x2b
push edx
push 5
push dword [0x448a38]
push esi
call fcn.004395d0
add esp, 0x20
jmp 0x412da6
xor eax, eax
movzx esi, al
mov ebx, edi
jmp dword [esi*4 + 0x4428e8]
jmp ecx
xor eax, eax
cmp word [edx], 0x5c
sete al
mov ebx, edx
jmp dword [eax*4 + 0x442900]
add edx, 0xfffffffe
xor eax, eax
cmp edx, dword [esp + 0x1c]
setae al
jmp dword [eax*4 + 0x4428e0]
mov esi, ebx
sub esi, dword [esp + 0x1c]
sar esi, 1
mov ecx, dword [esp + 0x18]
add ecx, esi
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x413d31
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov edi, eax
mov dword [esp + 0x18], eax
cmp ebx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
je 0x413e02
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 4]
lea ecx, [esi - 1]
mov edx, esi
and edx, 3
je 0x413d9d
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], ecx
xor ebx, ebx
mov edi, dword [esp + 0x18]
nop
nop
nop
movzx ecx, word [eax]
mov esi, edx
xor edx, edx
test cx, cx
setne dl
lea eax, [eax + edx*2]
mov edx, esi
mov word [edi], cx
add edi, 2
inc ebx
cmp esi, ebx
jne 0x413d70
mov esi, dword [esp + 0x30]
sub esi, ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
jmp 0x413da1
mov edi, dword [esp + 0x18]
cmp ecx, 3
jb 0x413e02
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [edi], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [edi + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [edi + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [edi + 6], dx
add edi, 8
add esi, 0xfffffffc
jne 0x413db0
movzx eax, word [ebx]
test ax, ax
je 0x413e9b
mov ecx, ebx
add ecx, 2
mov esi, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413e20
mov word [edi], 0
jmp dword [0x442908]
push ebx
call fcn.00409320
add esp, 4
sub edi, esi
mov eax, 0xffffffff
cmp edi, 0xfffffffe
jl 0x413e56
add edi, 2
mov eax, edi
push eax
call fcn.00409310
add esp, 4
mov dword [esp + 0xe0], eax
push eax
push esi
call fcn.00434ab0
add esp, 8
jmp dword [0x442910]
push esi
call fcn.00409320
add esp, 4
mov ecx, dword [esp + 0xd8]
mov eax, ecx
jmp 0x41409a
mov ecx, dword [esp + 0xd8]
mov esi, ecx
jmp 0x414092
mov esi, dword [esp + 0x18]
mov word [edi], 0
jmp dword [0x442908]
jmp dword [0x442938]
push dword [esp + 0x30]
call fcn.00409320
add esp, 4
jmp dword [0x442940]
jmp dword [0x442940]
push dword [esp + 0xe0]
call fcn.00409320
add esp, 4
mov ecx, edi
call fcn.0040a4b0
mov ecx, edi
call fcn.00409b50
push dword [esp + 0x5c]
call fcn.00437bc0
add esp, 4
mov esi, dword [esp + 0x24]
jmp dword [0x442948]
mov eax, ebx
and eax, 1
xor ebx, 1
lea ebx, [ebx + eax*2]
lea edi, [esp + 0x60]
push esi
call fcn.00402f30
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x442918]
push ebx
push esi
call fcn.00402f10
add esp, 8
push eax
call fcn.00402860
add esp, 4
mov edi, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x442920]
mov eax, edi
nop
nop
nop
nop
nop
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x413f50
sub esi, edi
mov eax, esi
inc eax
jns 0x413f70
mov eax, 0xffffffff
jmp 0x413f76
lea eax, [esi + esi]
add eax, 2
mov dword [esp + 0x18], ebx
push eax
call fcn.00409310
add esp, 4
mov dword [esp + 0x14], eax
mov eax, esi
test edi, edi
jne 0x413fa9
mov eax, edi
not eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x413fa0
mov dword [esp], 0
mov ecx, dword [esp + 0x14]
lea edx, [ecx + esi*2]
mov ebx, ecx
mov dword [esp + 0x1c], edx
cmp edx, ecx
jbe 0x414010
mov ebx, dword [esp + 0x14]
test eax, eax
jle 0x414010
mov esi, edi
add esi, eax
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x414010
mov eax, esp
push eax
push esi
push edi
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x1c]
jae 0x414010
add edi, eax
cmp edi, esi
jb 0x413fe0
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], 0
push 0
push 0
push dword [esp + 0x34]
push dword [esp + 0x34]
mov edi, dword [esp + 0x24]
push edi
push dword [esp + 0xf4]
push dword [esp + 0x48]
lea eax, [esp + 0x7c]
push eax
call fcn.0041b770
add esp, 0x20
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
jmp dword [0x442928]
push edi
call fcn.00409320
add esp, 4
jmp case.0x412e9a.17
push dword [esp + 0x2c]
call fcn.00409320
add esp, 4
push dword [esp + 0x2c]
call fcn.00409320
add esp, 4
jmp dword [0x442a24]
mov ecx, edi
call fcn.00409b50
mov eax, dword [case.0x411bf2.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
lea eax, [esi + 1]
cmp byte [esi], 0
je 0x41409e
mov esi, eax
jmp 0x414092
mov eax, esi
sub eax, ecx
xor ebx, ebx
test eax, eax
mov dword [esp + 0x14], eax
jle 0x4140e7
cmp byte [ecx], 0
je 0x4140e7
xor ebx, ebx
mov edi, dword [esp + 0xd8]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x60], 0
lea eax, [esp + 0x60]
push eax
push esi
push edi
call fcn.0040f5d0
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x4140e7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4140c0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4140f5
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov dword [esp + 0x60], 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 + 0xd8]
jbe 0x41415b
mov ebx, dword [esp + 0x30]
cmp dword [esp + 0x14], 0
jle 0x41415b
mov ebx, dword [esp + 0x30]
nop
nop
nop
cmp byte [edi], 0
je 0x41415b
lea eax, [esp + 0x60]
push eax
push esi
push edi
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x60]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x1c]
jae 0x41415b
add edi, eax
cmp edi, esi
jb 0x414130
mov word [ebx], 0
lea edi, [esp + 0x60]
mov ecx, edi
push 1
call fcn.00409b10
xor ebx, ebx
mov esi, dword [esp + 0x20]
jmp 0x413f0f
lea ecx, [esp + 0xf0]
call fcn.00438040
lea ecx, [esp + 0xf0]
call fcn.00438040
jmp dword [0x442950]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor esi, esi
mov dword [esp + 0x2c], edi
jmp 0x414201
xor eax, eax
jmp dword [0x442aec]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [esp + 0xc]
call fcn.00409320
add esp, 4
nop
nop
nop
nop
inc esi
push edi
call fcn.00402f30
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x442af0]
push esi
push edi
call fcn.00402f40
add esp, 8
mov ebx, eax
mov word [esp + 0x110], 0x1995
mov dword [esp + 0x112], 0
mov dword [esp + 0x115], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 8
ja 0x4142b4
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax - 0x46541afc]
and edx, ecx
add eax, ecx
add eax, 0xb9abe504
add edx, edx
sub eax, edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
add al, 0xe4
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 9
jb 0x414260
push 2
lea eax, [esp + 0x114]
push eax
mov dword [esp + 0x3c], ebx
push ebx
call fcn.00402e10
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x442af8]
mov word [esp + 0x50], 0xedf8
mov byte [esp + 0x52], 0x90
mov dword [esp + 0x53], 0
mov dword [esp + 0x57], 0
mov word [esp + 0x5b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xc
ja 0x41434c
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0x13]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xb259ab13
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x7b
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xd
jb 0x414310
push 3
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x3c]
call fcn.00402e10
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442b00]
movzx eax, bl
jmp dword [eax*4 + 0x442b08]
mov word [esp + 0xb8], 0xa54d
mov dword [esp + 0xbe], 0
mov dword [esp + 0xba], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 9
ja 0x414406
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 + 0xb8]
lea edx, [eax + ecx]
add edx, 0x350be2e5
add eax, 0x350be2e5
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0xbd
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xa
jb 0x4143c0
push 3
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x3c]
call fcn.00402e10
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442b08]
mov dword [esp + 0x3c], esi
mov word [esp + 0x110], 0x45dd
mov dword [esp + 0x116], 0
mov dword [esp + 0x112], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 9
mov ebx, dword [esp + 0x34]
ja 0x4144d5
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx edx, byte [esp + ecx + 0x110]
lea esi, [eax + 0x1964b935]
lea ecx, [eax + edx]
add ecx, 0x1964b935
and esi, edx
add eax, 0x35
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 + 0x50], eax
mov eax, dword [esp + 0x50]
add al, 0x8d
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xa
jb 0x414470
lea eax, [esp + 0x110]
push eax
push ebx
call fcn.00402740
add esp, 8
mov esi, eax
mov word [esp + 0x110], 0x59a6
mov byte [esp + 0x112], 0xf2
mov dword [esp + 0x113], 0
mov dword [esp + 0x117], 0
mov dword [esp + 0x11b], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xe
ja 0x414594
nop
nop
nop
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 + 0x110]
lea edx, [eax - 0x6e09b922]
and edx, ecx
add eax, ecx
add eax, 0x91f646de
add edx, edx
sub eax, edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
add al, 0xee
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xf
jb 0x414540
lea eax, [esp + 0x110]
push eax
push ebx
call fcn.00402880
add esp, 8
fnstcw word [esp + 0xb6]
movzx eax, word [esp + 0xb6]
or eax, 0xc00
mov word [esp + 0xfe], ax
fldcw word [esp + 0xfe]
fistp dword [esp + 0x108]
fldcw word [esp + 0xb6]
mov eax, dword [esp + 0x108]
mov dword [esp + 0x30], eax
mov word [esp + 0x110], 0x4d21
mov dword [esp + 0x112], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0x11a], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xd
ja 0x414685
nop
nop
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 + 0x110]
lea edx, [eax + ecx]
add edx, 0x704b814a
add eax, 0x704b814a
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
add al, 0xfa
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xe
jb 0x414630
lea eax, [esp + 0x110]
push eax
push ebx
call fcn.00402880
add esp, 8
mov eax, 0xffffffff
mov edx, esi
nop
nop
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne 0x4146a0
fnstcw word [esp + 0xb4]
movzx ecx, word [esp + 0xb4]
or ecx, 0xc00
mov word [esp + 0xfc], cx
fldcw word [esp + 0xfc]
fistp dword [esp + 0x104]
fldcw word [esp + 0xb4]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x50], 0
lea ecx, [esp + 0x110]
test eax, eax
jle 0x414750
mov esi, edx
add esi, eax
xor edi, edi
lea ecx, [esp + 0x110]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x414750
lea eax, [esp + 0x50]
push eax
push esi
push edx
mov ebx, edx
mov dword [esp + 0x18], ecx
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov edx, dword [esp + 0xc]
mov word [edx], cx
mov ecx, dword [esp + 0xc]
add ecx, 2
cmp edi, 0x3fd
ja 0x414750
add ebx, eax
inc edi
cmp ebx, esi
mov edx, ebx
jb case.default.0x41477d
nop
nop
mov word [ecx], 0
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x118]
push eax
call fcn.0040c330
add esp, 0xc
movzx eax, al
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
jmp dword [eax*4 + 0x442b10]
xor eax, eax
cmp dword [esp + 0x44], 0
sete al
xor ebx, ebx
mov dword [esp + 0xc], 0
mov dword [esp + 0x100], eax
jmp dword [eax*4 + 0x442b18]
mov word [esp + 0x50], 0x6dfc
mov dword [esp + 0x52], 0
mov dword [esp + 0x55], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 8
ja 0x41481b
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x50]
mov edx, eax
and edx, 0xd14b4792
xor eax, 0x514b4792
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0xb8]
add al, 2
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 9
jb 0x4147d0
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x38]
call fcn.00402740
add esp, 8
mov edx, eax
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x442b20]
mov dword [esp + 0x50], 0x70f0cdcc
mov dword [esp + 0x54], 0
mov word [esp + 0x58], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 9
ja 0x4148d0
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 + 0x50]
mov edx, eax
and edx, 0x22f5295e
xor eax, 0x22f5295e
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 + 0xb8], eax
mov eax, dword [esp + 0xb8]
mov ecx, eax
xor ecx, 0x6d
and eax, 0x6d
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xa
jb 0x414870
mov eax, dword [esp + 0x50]
push dword [eax + 0x14]
call fcn.00409980
add esp, 4
call fcn.004099a0
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 + 0x442b40]
call fcn.004099a0
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 + 0x442b40]
mov word [esp + edi*2 + 0xb8], 0
mov dword [esp + 0x10], 0x2b962dc1
mov dword [esp + 0x14], 0x17a329e5
mov dword [esp + 0x18], 0x13ff15a4
mov dword [esp + 0x1c], 0x1f1e11b4
mov dword [esp + 0x20], 0
mov byte [esp + 0x24], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x14
ja 0x4149dd
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 + 0x10]
lea edx, [eax - 0x12aca326]
add eax, 0xda
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
add al, 0xa
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x15
jb 0x4149a0
lea edi, [esp + 0x12]
jmp dword [0x442b4c]
mov eax, edx
mov dword [esp + 0x48], edx
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x4149f0
sub ebx, edx
mov eax, dword [case.0x414835.5]
nop
jmp eax
add edx, ebx
xor edi, edi
test ebx, ebx
mov dword [esp + 0xc], edx
jle 0x414a4b
mov eax, dword [esp + 0x48]
cmp byte [eax], 0
je 0x414a4b
xor edi, edi
mov esi, dword [esp + 0x48]
nop
nop
nop
mov dword [esp + 0x50], 0
lea eax, [esp + 0x50]
push eax
push edx
push esi
call fcn.0040f5d0
mov edx, dword [esp + 0x18]
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, edx
jae 0x414a4b
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x414a20
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x414a59
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov esi, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
cmp ecx, eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x48]
jbe 0x414add
mov esi, dword [esp + 0x40]
test ebx, ebx
jle 0x414add
mov esi, dword [esp + 0x40]
mov dword [esp + 0x4c], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x414add
lea eax, [esp + 0x50]
push eax
push ecx
push edx
mov ebx, ecx
mov edi, edx
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x44]
jae 0x414ad9
add edi, eax
cmp edi, ebx
mov ecx, ebx
mov edx, edi
mov edi, dword [esp + 0x4c]
jb 0x414aa0
jmp 0x414add
mov edi, dword [esp + 0x4c]
mov word [esi], 0
lea eax, [esp + 0x50]
push eax
push 0
push 0
push edi
push dword [esp + 0x50]
push 0
call dword [0x448a2c]
mov esi, dword [esp + 0x50]
lea eax, [esi + esi]
test esi, esi
jns 0x414b08
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov ebx, eax
lea eax, [esp + 0x50]
push eax
push esi
push ebx
push edi
mov esi, dword [esp + 0x50]
push esi
push 0
call dword [0x448a2c]
jmp dword [0x442b38]
push esi
call fcn.00409320
add esp, 4
mov edi, dword [esp + 0x2c]
jmp case.0x41477d.30
sete al
movzx eax, al
jmp dword [eax*4 + 0x442c20]
mov eax, dword [esp + 0x100]
jmp dword [eax*4 + 0x442c28]
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 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], 0x44
push 0x89047569
push dword [0x448a24]
call fcn.0043b050
add esp, 8
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x54]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x2c]
push ebx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442c30]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb8], 0xb2b5b4b7
mov dword [esp + 0xbc], 0
mov word [esp + 0xc0], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 9
ja 0x414cc2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx esi, byte [esp + edx + 0xb8]
lea edx, [ecx + esi]
add edx, 0x41a15869
add ecx, 0x41a15869
and ecx, esi
add ecx, ecx
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x21
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb8], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xa
jb 0x414c70
mov ecx, dword [0x448a30]
test ecx, ecx
je case.0x41477d.72
mov edx, dword [esp + 0xb8]
xor esi, esi
mov edi, dword [0x448a34]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x414cf0
inc esi
cmp ecx, esi
jne 0x414ce0
jmp case.0x41477d.72
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x414d12
mov eax, dword [esp + 0x38]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x442c48]
push eax
push 1
push dword [0x448a38]
push ecx
call fcn.004395d0
add esp, 0x10
mov eax, dword [esp + 0x38]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x442c48]
mov dword [esp + 0x10], 0x9b37994e
mov dword [esp + 0x14], 0x872b851c
mov word [esp + 0x18], 0x8180
mov dword [esp + 0x1e], 0
mov dword [esp + 0x1a], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x11
mov edi, dword [esp + 0x2c]
ja 0x414dc0
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 + ecx]
add edx, 0x199f5b6c
add eax, 0x199f5b6c
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0xc
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x12
jb 0x414d80
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414dd0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x414e03
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 0x414df0
add eax, edx
mov word [eax], 0
jmp case.0x41477d.30
push 0x80
push 0x60
push 5
push 0
push 0x100002
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.0043ba80
add esp, 0x1c
mov esi, eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442b90]
jmp dword [0x442b9c]
mov dword [esp + 0x44], ebx
push 0
push dword [esp + 0x110]
push dword [esp + 0x40]
push dword [esp + 0x14]
call fcn.0043c350
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x50], 0xb2b5b4b7
mov dword [esp + 0x54], 0
mov word [esp + 0x58], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 9
ja 0x414ee2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edi, byte [esp + edx + 0x50]
lea edx, [ecx + edi]
add edx, 0x41a15869
add ecx, 0x41a15869
and ecx, edi
add ecx, ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0x21
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x50], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0xa
jb 0x414e90
mov ecx, dword [0x448a30]
test ecx, ecx
je 0x414f18
mov edx, dword [esp + 0x50]
xor edi, edi
mov ebx, dword [0x448a34]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x414f10
inc edi
cmp ecx, edi
jne 0x414f00
jmp 0x414f18
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x414f26
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
jmp dword [0x442b9c]
push eax
push 1
push dword [0x448a38]
push ecx
call fcn.004395d0
add esp, 0x10
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
jmp dword [0x442b9c]
mov eax, dword [esp + 0x38]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x442c48]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x442c50]
push ebx
call fcn.00409320
add esp, 4
xor eax, eax
cmp dword [esp + 0xc], 0
sete al
jmp dword [eax*4 + 0x442c58]
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x414f90
sub eax, ebx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
lea esi, [esp + 0x50]
jge 0x414fae
mov ecx, 0xffffffff
push ecx
call fcn.00409310
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0xb8], 0xf3f2cdea
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xb
ja 0x415033
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0xb8]
lea edx, [eax + 0xebde]
add eax, 0xde
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
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, 0xc
jb 0x414ff0
mov dword [esp + 0x50], 0xbb90dbc
mov dword [esp + 0x54], 0x17bb09b3
mov dword [esp + 0x58], 0x13ad15aa
mov dword [esp + 0x5c], 0x1fb311b8
mov dword [esp + 0x60], 0x1bae1da8
mov dword [esp + 0x64], 0x67131978
mov dword [esp + 0x68], 0x63da65c9
mov dword [esp + 0x6c], 0x6fc161cd
mov dword [esp + 0x70], 0x6bc46d0c
mov dword [esp + 0x74], 0x77c669d1
mov dword [esp + 0x78], 0x73cd75d5
mov dword [esp + 0x7c], 0x7f1e71cf
mov dword [esp + 0x80], 0x7bd07d09
mov dword [esp + 0x84], 0x47287918
mov word [esp + 0x88], 0x4544
mov dword [esp + 0x8a], 0
mov dword [esp + 0x8e], 0
mov word [esp + 0x92], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x43
ja 0x41512f
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 + 0x50]
lea edx, [eax + 0xaa]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x3f3bd5aa
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x5a
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x44
jb 0x4150f0
movzx ecx, word [esp + 0x50]
mov eax, dword [esp + 0xc]
test cx, cx
je 0x415161
lea edx, [esp + 0x52]
mov eax, dword [esp + 0xc]
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 0x415150
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x415191
lea edx, [ebx + 2]
nop
nop
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 0x415180
mov word [eax], 0
movzx ecx, word [esp + 0xb8]
test cx, cx
je 0x4151c1
lea edx, [esp + 0xba]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4151b0
mov word [eax], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 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], 0x44
push 0x89047569
push dword [0x448a24]
call fcn.0043b050
add esp, 8
lea ecx, [esp + 0x10]
push ecx
push esi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esp + 0x2c]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442c40]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb8], 0xb2b5b4b7
mov dword [esp + 0xbc], 0
mov word [esp + 0xc0], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 9
ja 0x415322
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx esi, byte [esp + edx + 0xb8]
lea edx, [ecx + esi]
add edx, 0x41a15869
add ecx, 0x41a15869
and ecx, esi
add ecx, ecx
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x21
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb8], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xa
jb 0x4152d0
mov ecx, dword [0x448a30]
test ecx, ecx
je case.0x41477d.76
mov edx, dword [esp + 0xb8]
xor esi, esi
mov edi, dword [0x448a34]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x415350
inc esi
cmp ecx, esi
jne 0x415340
jmp case.0x41477d.76
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x415372
mov eax, dword [esp + 0x38]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x442c48]
push eax
push 1
push dword [0x448a38]
push ecx
call fcn.004395d0
add esp, 0x10
mov eax, dword [esp + 0x38]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x442c48]
mov dword [esp + 0x40], 0
mov dword [esp + 0x50], 0x2b9f2590
mov dword [esp + 0x54], 0x2f8c2998
mov dword [esp + 0x58], 0x33802d82
mov dword [esp + 0x5c], 0x37463147
mov word [esp + 0x60], 0x3536
mov dword [esp + 0x62], 0
mov dword [esp + 0x66], 0
mov byte [esp + 0x6a], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x1a
ja 0x415442
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x50]
lea esi, [ecx + edx]
add esi, 0x35639685
add ecx, 0x35639685
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x10]
add cl, 0x5d
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x50], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x1b
jb 0x415400
mov edx, edi
mov ecx, 4
lea edi, [esp + 0xb8]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x60]
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
cmp word [esp + ecx + 0xba], 0
lea ecx, [ecx + 2]
jne 0x415480
sar ecx, 1
add eax, ecx
inc eax
mov ecx, eax
and ecx, ebx
xor eax, ebx
add eax, dword [esp + 0x40]
lea edx, [eax + ecx*2]
lea ecx, [eax + ecx*2]
inc ecx
lea eax, [edx + edx]
add eax, 2
test ecx, ecx
jns 0x4154b3
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov esi, eax
movzx eax, word [esp + 0xb8]
mov dword [esp + 0xc], esi
test ax, ax
je 0x4154f1
lea ecx, [esp + 0xba]
mov esi, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4154e0
mov dword [esi], 0x220020
add esi, 4
mov ecx, dword [esp + 0x44]
movzx eax, word [ecx]
test ax, ax
je 0x415521
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415510
lea edi, [esi + 2]
mov word [esi], 0x22
jmp dword [0x442bd8]
push dword [esp + 0x44]
call fcn.00409320
add esp, 4
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
jmp dword [eax*4 + 0x442be0]
mov dword [esp + 0x30], ebx
mov word [edi], 0x2c
mov eax, 0xffffffff
mov ebx, dword [esp + 0x4c]
nop
nop
nop
nop
cmp byte [ebx + eax + 1], 0
lea eax, [eax + 1]
jne 0x415560
lea edi, [esi + 4]
mov dword [esp + 0x50], 0
cmp dword [esp + 0x30], 2
jl 0x415696
test eax, eax
jle 0x415696
mov edx, ebx
add edx, eax
mov eax, dword [esp + 0x30]
lea eax, [esi + eax*2]
add eax, 2
mov dword [esp + 0x30], eax
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x415696
mov esi, edx
lea eax, [esp + 0x50]
push eax
push edx
push ebx
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x30]
jae 0x415692
add ebx, eax
cmp ebx, esi
mov ecx, dword [esp + 0x34]
mov edx, esi
jb 0x4155a0
jmp 0x415696
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
jmp dword [eax*4 + 0x442be0]
mov eax, dword [esp + 0x48]
jmp dword [eax*4 + 0x442be8]
mov word [edi], 0x2c
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x415610
lea esi, [edi + 2]
mov dword [esp + 0x50], 0
cmp dword [esp + 0x40], 2
jl 0x41566f
test eax, eax
jle 0x41566f
mov ebx, ecx
add ebx, eax
mov eax, dword [esp + 0x40]
lea eax, [edi + eax*2]
mov dword [esp + 0x34], eax
nop
cmp byte [ecx], 0
je 0x41566f
lea eax, [esp + 0x50]
push eax
push ebx
push ecx
mov edi, ecx
call fcn.0040f5d0
add esp, 0xc
movzx ecx, word [esp + 0x50]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x34]
jae 0x41566f
add edi, eax
cmp edi, ebx
mov ecx, edi
jb 0x415640
mov word [esi], 0
mov dword [esp + 0x30], 0
xor ebx, ebx
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
mov eax, 1
jmp dword [eax*4 + 0x442bf0]
mov ecx, dword [esp + 0x34]
mov word [edi], 0
mov eax, dword [esp + 0x48]
jmp dword [eax*4 + 0x442be8]
mov dword [esp + 0x30], 0
xor ebx, ebx
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
mov eax, 1
jmp dword [eax*4 + 0x442bf0]
xor ebx, ebx
xor ecx, ecx
test edx, edx
setne cl
mov dword [esp + 0x48], ecx
jmp dword [ecx*4 + 0x442bc0]
mov ecx, edx
nop
nop
nop
nop
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne 0x4156e0
sub esi, edx
inc esi
mov dword [esp + 0x40], esi
jmp 0x4153a6
movzx ecx, word [esp + 0x10]
lea eax, [esp + 0x50]
test cx, cx
je 0x415721
mov edx, edi
lea eax, [esp + 0x50]
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 0x415710
mov word [eax], 0
movzx ecx, word [esp + 0xb8]
test cx, cx
je 0x415751
lea edx, [esp + 0xba]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x415740
mov word [eax], 0
movzx eax, word [esp + 0x10]
lea esi, [esp + 0x50]
test ax, ax
je 0x415781
mov ecx, edi
lea esi, [esp + 0x50]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415770
mov word [esi], 0
movzx eax, word [esp + 0xb8]
test ax, ax
je 0x4157b1
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 0x4157a0
mov word [esi], 0
jmp dword [0x442b54]
lea ebx, [esp + 0x50]
sub esi, ebx
sar esi, 1
mov edi, dword [0x448a2c]
jmp dword [0x442b5c]
push eax
call fcn.00437bc0
add esp, 4
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x442c50]
xor eax, eax
cmp dword [esp + 0xc], 0
sete al
jmp dword [eax*4 + 0x442c58]
mov dword [esp + 0x10], 0x5be659ae
mov dword [esp + 0x14], 0x57e255e0
mov word [esp + 0x18], 0x5150
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x21], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x14
ja 0x415889
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 - 0x485ea4c]
and edx, ecx
add eax, ecx
add eax, 0xfb7a15b4
add edx, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, eax
or ecx, 0x13
and eax, 0x13
add eax, ecx
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x15
jb 0x415840
mov eax, ebx
add eax, 0xfffffffe
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x415890
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4158c3
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 0x4158b0
add eax, edx
mov word [eax], 0
mov eax, dword [case.0x41477d.30]
nop
nop
nop
jmp eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne case.default.0x4158f8
sub ebx, dword [esp + 0x4c]
inc ebx
xor ecx, ecx
test edx, edx
setne cl
mov dword [esp + 0x48], ecx
jmp dword [ecx*4 + 0x442bc0]
mov ecx, dword [case.0x41477d.49]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
sete al
movzx eax, al
jmp dword [eax*4 + 0x442c18]
push 0x51b4a2b7
push dword [0x448a24]
call fcn.0043b050
add esp, 8
push 0
push 0
push dword [esp + 0x40]
push 0x41d930
push 0
push 0
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x442c38]
mov dword [esp + 0xbc], 0xffffffff
mov dword [esp + 0xb8], 0xb8797400
mov dword [esp + 0x50], 0xb2b5b4b7
mov dword [esp + 0x54], 0
mov word [esp + 0x58], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 9
ja 0x4159ea
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 + 0x50]
lea ecx, [eax + edx]
add ecx, 0x41a15869
add eax, 0x41a15869
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x21
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xa
jb 0x4159a0
mov eax, dword [0x448a30]
test eax, eax
je 0x415a34
mov ecx, dword [esp + 0x50]
xor edx, edx
mov edi, dword [0x448a34]
nop
cmp dword [edi + edx*8], 0x10c53004
je 0x415a10
inc edx
cmp eax, edx
jne 0x415a00
jmp 0x415a34
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x415a34
lea ecx, [esp + 0xb8]
push ecx
push 0
push esi
push 3
push dword [0x448a38]
push eax
call fcn.004395d0
add esp, 0x18
mov dword [esp + 0x50], 0xb2b5b4b7
mov dword [esp + 0x54], 0
mov word [esp + 0x58], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 9
ja 0x415aaa
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x50]
lea ecx, [eax + edx]
add ecx, 0x41a15869
add eax, 0x41a15869
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x21
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xa
jb 0x415a60
mov eax, dword [0x448a30]
test eax, eax
je case.default.0x415afd
mov ecx, dword [esp + 0x50]
xor edx, edx
mov edi, dword [0x448a34]
nop
cmp dword [edi + edx*8], 0xad91fd63
je 0x415ad0
inc edx
cmp eax, edx
jne 0x415ac0
jmp case.default.0x415afd
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je case.default.0x415afd
push esi
push 1
push dword [0x448a38]
push eax
call fcn.004395d0
add esp, 0x10
mov eax, dword [esp + 0x38]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x442c48]
mov esi, dword [esp + 0x3c]
jmp dword [eax*4 + 0x442bf0]
mov eax, dword [case.0x41477d.2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
mov ecx, dword [esp + 0x30]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x442c08]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x442c10]
xor ecx, ecx
cmp dword [esp + 0x30], 1
sete cl
mov eax, 1
mov dword [esp + 0xc], 0
jmp dword [ecx*4 + 0x442bb0]
mov word [esp + 0x50], 0xfff6
mov byte [esp + 0x52], 0x6a
mov dword [esp + 0x53], 0
mov byte [esp + 0x57], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x415bd2
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x50]
lea edx, [eax + 0x32]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xf27a2332
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xa2
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x415b90
lea edi, [esp + 0x50]
push edi
push dword [esp + 0x38]
call fcn.00402740
add esp, 8
mov dword [esp + 0x4c], eax
mov word [esp + 0x50], 0x330d
mov byte [esp + 0x52], 0xaa
mov dword [esp + 0x53], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 9
ja 0x415c76
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx esi, byte [esp + eax + 0x50]
lea eax, [edx + 0x73953c1a]
lea ecx, [edx + esi]
add ecx, 0x73953c1a
add edx, 0x1a
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 + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x4a
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x50], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xa
jb 0x415c20
push edi
push dword [esp + 0x38]
call fcn.00402740
add esp, 8
mov edx, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x415cb4
mov dword [esp + 0x44], ebx
sar eax, 1
xor ebx, ebx
mov ecx, dword [esp + 0x4c]
test ecx, ecx
setne bl
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ebx
jmp dword [ebx*4 + 0x442bb8]
xor eax, eax
cmp ecx, 2
sete al
jmp dword [eax*4 + 0x442b78]
mov dword [esp + 0x10], 0xa312ad5e
mov dword [esp + 0x14], 0xa757a117
mov word [esp + 0x18], 0xa5a4
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x21], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x14
ja 0x415d4b
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 - 0x62ce0ba]
add eax, 0x46
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x16
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x15
jb 0x415d10
mov eax, ebx
add eax, 0xfffffffe
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x415d50
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x4158c3
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 0x415d70
jmp 0x4158c1
lea eax, [esp + 0xf8]
push eax
push 0
push 0
push esi
push ebx
push 0
call edi
lea eax, [esp + 0xf8]
push eax
push 0
push 0
push esi
push ebx
push 0
call edi
jmp dword [0x442b60]
mov edi, dword [esp + 0xf8]
mov eax, edi
add eax, 4
lea eax, [edi + edi + 8]
jns 0x415dc7
mov eax, 0xffffffff
push eax
call fcn.00409310
add esp, 4
mov ebx, eax
lea eax, [esp + 0xf8]
push eax
push edi
push ebx
push esi
lea eax, [esp + 0x60]
push eax
push 0
call dword [0x448a2c]
xor eax, eax
mov ecx, dword [esp + 0x30]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442b68]
xor eax, eax
cmp ecx, 1
sete al
mov edi, dword [esp + 0x2c]
jmp dword [eax*4 + 0x442b70]
push dword [esp + 0x38]
call fcn.00437bc0
add esp, 4
mov dword [esp + 0x38], 0
push dword [esp + 0x38]
call fcn.00437bc0
add esp, 4
mov dword [esp + 0x38], 0
jmp dword [0x442ba0]
not esi
shr esi, 0x1f
mov dword [esp + 0xc], 0
xor eax, eax
jmp dword [esi*4 + 0x442ba8]