Function at 0x4111d2
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf0
mov ecx, dword [0x440a84]
mov dword [esp + 0xd0], 0x33f783cc
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd7], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xa
ja 0x40fa98
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x30]
movzx edx, byte [esp + edx + 0xd0]
lea esi, [eax + 0x59]
add eax, edx
and esi, edx
add esi, esi
sub eax, esi
add eax, 0x41e9b59
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x2e0]
add al, 0x91
mov edx, dword [esp + 0x30]
mov byte [esp + edx + 0xd0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xb
jb 0x40fa50
mov edx, dword [str.LPnhqo___moxiq]
mov dword [esp + 0x2e0], 0x642c1c15
mov dword [esp + 0x2e4], 0x14191a28
mov dword [esp + 0x2e8], 0xc010628
mov dword [esp + 0x2ec], 0x4313005
mov dword [esp + 0x2f0], 0x3d4e0e0f
mov dword [esp + 0x2f4], 0x7b733f0d
mov dword [esp + 0x2f8], 0x3f764140
mov dword [esp + 0x2fc], 0x974b3139
mov dword [esp + 0x300], 0
mov dword [esp + 0x260], 0
mov eax, dword [esp + 0x260]
cmp eax, 0x23
ja 0x40fb87
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x260]
mov esi, dword [esp + 0x260]
movzx edi, byte [esp + esi + 0x2e0]
lea ebx, [eax - 0x28a3c4b9]
lea esi, [eax + edi]
add esi, 0xd75c3b47
add eax, 0x47
or eax, ebx
and ebx, edi
and eax, edi
add eax, ebx
mov edi, esi
not edi
and edi, eax
not eax
and eax, esi
sub eax, edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0xf
mov esi, dword [esp + 0x260]
mov byte [esp + esi + 0x2e0], al
inc dword [esp + 0x260]
mov eax, dword [esp + 0x260]
cmp eax, 0x24
jb 0x40fb20
movzx ebx, byte [esp + 0x2e0]
lea eax, [esp + 0x260]
test bl, bl
je 0x40fbbb
lea esi, [esp + 0x2e1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40fbb0
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40fbdb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40fbd0
mov byte [eax], 0
movzx edx, byte [esp + 0xd0]
test dl, dl
je 0x40fc0b
lea esi, [esp + 0xd1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40fc00
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40fc2b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40fc20
mov byte [eax], 0
lea ecx, [esp + 0x260]
mov dword [esp + 0x2e0], 0x43d14d8b
mov dword [esp + 0x2e4], 0x47d241d2
mov dword [esp + 0x2e8], 0x3ba845e1
mov dword [esp + 0x2ec], 0x3fe339ac
mov dword [esp + 0x2f0], 0x33bb3d88
mov dword [esp + 0x2f4], 0x379331a0
mov dword [esp + 0x2f8], 0x2bca35fa
mov dword [esp + 0x2fc], 0x2fbe2989
mov dword [esp + 0x300], 0x23be2dbc
mov dword [esp + 0x304], 0x278121b9
mov dword [esp + 0x308], 0x1b8e2585
mov dword [esp + 0x30c], 0x1f8d1981
mov dword [esp + 0x310], 0x13c11d8e
mov dword [esp + 0x314], 0x17cb1198
mov dword [esp + 0x318], 0xb81159f
mov dword [esp + 0x31c], 0xfd30983
mov dword [esp + 0x320], 0x3910d96
mov dword [esp + 0x324], 0x79b0196
mov dword [esp + 0x328], 0xfb6f05d9
mov dword [esp + 0x32c], 0xff62f96e
mov dword [esp + 0x330], 0xf360fd59
mov dword [esp + 0x334], 0xf765f157
mov dword [esp + 0x338], 0xeb4ff550
mov dword [esp + 0x33c], 0xef13e94c
mov dword [esp + 0x340], 0xe3e2ed12
mov word [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x30]
cmp edx, 0x69
ja 0x40fdbe
nop
nop
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x30]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [edx + esi]
add edx, 0xb6
and edx, esi
add edx, edx
sub edi, edx
add edi, 0xa8eacdb6
mov dword [esp + 0xd0], edi
mov edx, dword [esp + 0xd0]
add dl, 6
mov esi, dword [esp + 0x30]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x30]
mov edx, dword [esp + 0x30]
cmp edx, 0x6a
jb 0x40fd70
sub eax, ecx
mov dword [esp + 0xd0], 0xdb3bd9ef
mov dword [esp + 0xd4], 0xe70fe514
mov word [esp + 0xd8], 0xe1e0
mov dword [esp + 0xda], 0
mov dword [esp + 0xdd], 0
mov dword [esp + 0x1f8], 0
mov edx, dword [esp + 0x1f8]
cmp edx, 0x10
ja 0x40fe64
nop
nop
nop
mov edx, dword [esp + 0x1f8]
mov esi, dword [esp + 0x1f8]
movzx esi, byte [esp + esi + 0xd0]
lea edi, [edx + esi]
add edx, 0x1c
and edx, esi
add edx, edx
sub edi, edx
add edi, 0x7db96c1c
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x30]
add dl, 0x3c
mov esi, dword [esp + 0x1f8]
mov byte [esp + esi + 0xd0], dl
inc dword [esp + 0x1f8]
mov edx, dword [esp + 0x1f8]
cmp edx, 0x11
jb 0x40fe10
lea edx, [esp + 0xc8]
lea esi, [esp + 0xc0]
lea ebx, [esp + 0x2e0]
lea edi, [esp + 0xd0]
push edx
push esi
push eax
push ecx
push ebx
push edi
push 0x44614c
call fcn.0040cbf0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44172c]
xor esi, esi
xor ebx, ebx
test esi, esi
sete bl
xor eax, eax
jmp dword [ebx*4 + 0x441734]
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xc8]
mov ebx, dword [esp + 0xc0]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + ebx - 1]
cmp edx, 0x3d
je 0x40fede
cmp edx, 0x2e
jne 0x40fedf
dec eax
movzx ecx, byte [ecx + ebx - 2]
cmp ecx, 0x3d
je 0x40feee
cmp ecx, 0x2e
jne 0x40feef
dec eax
push eax
call fcn.00409080
add esp, 4
mov esi, eax
push eax
push ebx
call fcn.00433580
add esp, 8
push dword [esp + 0xc0]
call fcn.00436da0
add esp, 4
xor ebx, ebx
test esi, esi
sete bl
xor eax, eax
jmp dword [ebx*4 + 0x441734]
mov dword [esp + 0x18], esi
push esi
call fcn.00401ee0
add esp, 4
mov esi, eax
jmp dword [ebx*4 + 0x44173c]
push dword [esp + 0x18]
call fcn.00409090
add esp, 4
push esi
call fcn.00402970
add esp, 4
mov ebx, eax
mov word [esp + 0x2e0], 0x161c
mov byte [esp + 0x2e2], 0xa4
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov dword [esp + 0x2ea], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xd
ja 0x40ffe9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0x58db53c5]
add eax, 0xc5
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x9d
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xe
jb 0x40ffa0
lea eax, [esp + 0x2e0]
push eax
push ebx
call fcn.00402ad0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x441744]
xor eax, eax
jmp 0x4100b7
mov dword [esp + 0x2e0], 0xe3a0a1a6
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x2e8], 0
mov dword [esp + 0x2ec], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xf
ja 0x4100a5
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + ecx]
add eax, 0x1b
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x7ec6da1b
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
mov ecx, eax
xor ecx, 0x42
and eax, 0x42
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0x10
jb 0x410050
push dword [esp + 0x2e0]
call fcn.00432480
add esp, 4
movzx eax, al
mov ecx, dword [case.0x410001.4]
nop
nop
nop
jmp ecx
jmp dword [eax*4 + 0x44175c]
mov dword [esp + 0x18], ebx
mov word [esp + 0x2e0], 0xc5c1
mov byte [esp + 0x2e2], 0x62
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov dword [esp + 0x2ea], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xd
ja 0x41017f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x30]
movzx edx, byte [esp + eax + 0x2e0]
lea eax, [ecx + edx]
add eax, 0xcc5b2690
add ecx, 0xcc5b2690
mov ebx, edx
not ebx
or ebx, ecx
add ebx, edx
and ecx, edx
add ecx, ebx
inc ecx
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0xd0]
add al, 0x10
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xe
jb 0x410120
lea ebx, [esp + 0x2e0]
push ebx
push dword [esp + 0x1c]
call fcn.00402ad0
add esp, 8
mov dword [esp + 0xb8], eax
mov word [esp + 0x2e0], 0x8ebb
mov byte [esp + 0x2e2], 0x34
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov byte [esp + 0x2eb], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xb
ja 0x41022b
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0xd9]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xb1ec31d9
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
add al, 0x11
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xc
jb 0x4101e0
push ebx
mov ebx, dword [esp + 0x1c]
push ebx
call fcn.00402ad0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0x2c], ecx
push ebx
call fcn.00410f80
add esp, 4
push esi
call fcn.00402f40
add esp, 4
lea ebx, [esp + 0x1f8]
mov ecx, ebx
push 1
call fcn.004098d0
push ebx
call fcn.0041e290
add esp, 4
mov ecx, ebx
call fcn.0040a280
lea ebx, [esp + 0xc80]
mov ecx, ebx
push 3
call fcn.004098d0
push ebx
call fcn.0041ea60
add esp, 4
mov ecx, ebx
call fcn.0040a280
lea ebx, [esp + 0xc18]
mov ecx, ebx
push 1
call fcn.004098d0
push ebx
call fcn.0041eca0
add esp, 4
mov ecx, ebx
call fcn.0040a280
lea ebx, [esp + 0xbb0]
mov ecx, ebx
push 1
call fcn.004098d0
push ebx
call fcn.004209e0
add esp, 4
push ebx
call fcn.00421330
add esp, 4
push ebx
call fcn.004217e0
add esp, 4
mov ecx, ebx
call fcn.0040a280
lea ebx, [esp + 0xb48]
mov ecx, ebx
push 1
call fcn.004098d0
push ebx
call fcn.00423620
add esp, 4
mov ecx, ebx
call fcn.0040a280
lea ebx, [esp + 0xae0]
mov ecx, ebx
push 1
call fcn.004098d0
push ebx
call fcn.004258a0
add esp, 4
push ebx
call fcn.0042d7e0
add esp, 4
mov eax, dword [esp + 0x2c]
jmp dword [eax*4 + 0x441774]
push ebx
call fcn.0042d9d0
add esp, 4
lea ecx, [esp + 0xae0]
call fcn.0040a280
lea eax, [esp + 0x1d7]
push eax
call fcn.00432fc0
add esp, 4
mov dword [esp + 0x30], 0xe4dded2c
mov word [esp + 0x34], 0xaee
mov byte [esp + 0x36], 0x48
mov dword [esp + 0x37], 0
mov dword [esp + 0x3b], 0
mov byte [esp + 0x3f], 0
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0xd0]
cmp eax, 0xf
ja 0x410405
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
movzx edx, byte [esp + ecx + 0x30]
lea esi, [eax - 0x5ae7498b]
lea ecx, [eax + edx]
add ecx, 0xa518b675
and esi, edx
add eax, 0x75
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 + 0x2e0], eax
mov eax, dword [esp + 0x2e0]
add al, 0xcd
mov ecx, dword [esp + 0xd0]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xd0]
mov eax, dword [esp + 0xd0]
cmp eax, 0x10
jb 0x4103a0
mov eax, dword [0x440a84]
mov dword [esp + 0x2c], eax
mov dword [esp], 0xb4f7b36
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp + 0xd0], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 0xb
ja 0x4104a4
nop
nop
nop
nop
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
movzx esi, byte [esp + edx]
lea ebx, [ecx + 0x34e01c02]
lea edx, [ecx + esi]
add edx, 0x34e01c02
and ebx, esi
add ecx, 2
and ecx, esi
add ecx, ebx
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0x2e0], ecx
mov ecx, dword [esp + 0x2e0]
add cl, 0xf2
mov edx, dword [esp + 0xd0]
mov byte [esp + edx], cl
inc dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
cmp ecx, 0xc
jb 0x410440
mov ecx, dword [str.LPnhqo___moxiq]
mov dword [esp + 0x2e0], 0x3ef60201
mov dword [esp + 0x2e4], 0x18f20003
mov dword [esp + 0x2e8], 0xf8f90c05
mov dword [esp + 0x2ec], 0x490b0a0d
mov dword [esp + 0x2f0], 0xce00f406
mov dword [esp + 0x2f4], 0xb1c6bbc0
mov dword [esp + 0x2f8], 0xc6fef0f4
mov byte [esp + 0x2fc], 0x9c
mov dword [esp + 0x2fd], 0
mov dword [esp + 0x300], 0
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x1c]
cmp edx, 0x23
ja 0x410584
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
movzx esi, byte [esp + esi + 0x2e0]
lea ebx, [edx + 0xf0]
mov eax, 0xa8543f0f
sub eax, edx
or eax, esi
not esi
or esi, ebx
add eax, esi
mov edx, 0xfffffffe
sub edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0x70
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 0x2e0], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0x24
jb 0x410530
movzx edx, byte [esp + 0x2e0]
test dl, dl
je 0x4105ab
lea edi, [esp + 0xd0]
lea esi, [esp + 0x2e1]
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x4105a0
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x4105d3
inc ecx
mov eax, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x4105c0
jmp 0x4105d7
jmp dword [0x441768]
mov eax, dword [esp + 0x2c]
mov byte [edi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x4105fb
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x4105f0
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x41061b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x410610
mov byte [edi], 0
movzx eax, byte [esp + 0x30]
test al, al
je 0x41063b
lea ecx, [esp + 0x31]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x410630
mov byte [edi], 0
movzx eax, byte [esp + 0x1d7]
test al, al
je 0x41066b
lea ecx, [esp + 0x1d8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x410660
mov byte [edi], 0
lea eax, [esp + 0xd0]
mov dword [esp + 0x2e0], 0x6bf96d93
mov dword [esp + 0x2e4], 0x67ea69fa
mov dword [esp + 0x2e8], 0x63f065f9
mov dword [esp + 0x2ec], 0x1fcb61ec
mov dword [esp + 0x2f0], 0x1b931df0
mov dword [esp + 0x2f4], 0x178b1988
mov dword [esp + 0x2f8], 0x133215d2
mov dword [esp + 0x2fc], 0xf9e11f1
mov dword [esp + 0x300], 0xb9e0d9c
mov dword [esp + 0x304], 0x7990991
mov dword [esp + 0x308], 0x38e05e5
mov dword [esp + 0x30c], 0x3fad0199
mov dword [esp + 0x310], 0x3be93dae
mov dword [esp + 0x314], 0x37e339b0
mov dword [esp + 0x318], 0x33b935bf
mov dword [esp + 0x31c], 0x2ffb31bb
mov dword [esp + 0x320], 0x2bb92db6
mov dword [esp + 0x324], 0x27b329a6
mov dword [esp + 0x328], 0x23af25f1
mov dword [esp + 0x32c], 0xdf4a21ae
mov dword [esp + 0x330], 0xdb48dd41
mov dword [esp + 0x334], 0xd745d947
mov dword [esp + 0x338], 0xd34fd548
mov dword [esp + 0x33c], 0xcffbd14c
mov dword [esp + 0x340], 0xcbcacdfa
mov dword [esp + 0x347], 0
mov dword [esp + 0x344], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x6a
ja 0x410803
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x2e0]
lea esi, [ecx + 0xb2]
mov ebx, 0xef86d14d
sub ebx, ecx
or ebx, edx
not edx
or edx, esi
add ebx, edx
mov ecx, 0xfffffffe
sub ecx, ebx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
mov edx, ecx
or edx, 0x21
and ecx, 0x21
add ecx, edx
inc cl
mov edx, dword [esp]
mov byte [esp + edx + 0x2e0], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x6b
jb 0x4107b0
sub edi, eax
mov dword [esp + 0x30], 0x43234177
mov dword [esp + 0x34], 0x5f275d32
mov word [esp + 0x38], 0x595e
mov dword [esp + 0x3e], 0
mov dword [esp + 0x3a], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x11
ja 0x41088a
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + edx]
add esi, 0x9d0372cb
add ecx, 0x9d0372cb
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x73
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x12
jb 0x410840
lea ecx, [esp + 0xc4]
lea edx, [esp + 0xbc]
lea esi, [esp + 0x30]
push ecx
push edx
push edi
push eax
lea eax, [esp + 0x2f0]
push eax
push esi
push 0x44614c
call fcn.0040cbf0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44177c]
xor ebx, ebx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x441784]
mov ecx, dword [esp + 0xc4]
mov edi, dword [esp + 0xbc]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x4108f3
cmp edx, 0x2e
jne 0x4108f4
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x410903
cmp ecx, 0x2e
jne 0x410904
dec eax
push eax
call fcn.00409080
add esp, 4
mov ebx, eax
push eax
push edi
call fcn.00433580
add esp, 8
push dword [esp + 0xbc]
call fcn.00436da0
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x441784]
jmp dword [0x441790]
push ebx
call fcn.00401ee0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebx
call fcn.00401ee0
add esp, 4
jmp dword [0x441798]
mov edi, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x44179c]
push ebx
call fcn.00409090
add esp, 4
push edi
call fcn.004142e0
add esp, 4
push edi
call fcn.00402f40
add esp, 4
mov dword [esp + 0x2e0], 0xb32d2b2a
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x2e8], 0
mov dword [esp + 0x2eb], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x410a1b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x2e0]
lea ecx, [eax + edx]
add ecx, 0x635e41e9
add eax, 0x635e41e9
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 + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0xa1
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x4109d0
lea ebx, [esp + 0x2e0]
push ebx
push dword [esp + 0x1c]
call fcn.00402ad0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4417a4]
xor eax, eax
cmp dword [esp + 0xb8], 0
setg al
jmp dword [eax*4 + 0x4417ac]
lea ecx, [esp + 0x2e0]
push 1
call fcn.004098d0
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x446455], 0
lea eax, [eax + 1]
jne 0x410a70
mov dword [esp + 0x30], 0x2cc23eda
mov dword [esp + 0x34], 0x57508b3b
mov word [esp + 0x38], 0xd952
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xf
ja 0x410aff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0x3b]
and esi, edx
mov edi, 0xad53ecc4
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp], edi
mov ecx, dword [esp]
add cl, 0x63
mov edx, dword [esp + 0x1c]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x10
jb 0x410ac0
lea esi, [esp + 0x2e0]
mov ecx, esi
push eax
push 0x446454
lea eax, [esp + 0x38]
push eax
call fcn.00409ad0
mov ecx, esi
call fcn.0040a280
mov ecx, esi
call fcn.00409910
xor eax, eax
cmp dword [esp + 0xb8], 0
setg al
jmp dword [eax*4 + 0x4417ac]
push 0
call fcn.0043a2a0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4417b4]
mov dword [esp + 0x30], 0x73df6dcb
mov dword [esp + 0x34], 0x778471d4
mov dword [esp + 0x38], 0x7bc275d1
mov dword [esp + 0x3c], 0x7f9e79dd
mov dword [esp + 0x40], 0x43f57d9a
mov dword [esp + 0x44], 0x47e741f4
mov dword [esp + 0x48], 0x4bfe45f2
mov dword [esp + 0x4c], 0x4fbd49a8
mov dword [esp + 0x50], 0x53fb4de1
mov dword [esp + 0x54], 0x57b651e2
mov dword [esp + 0x58], 0x5bf755f3
mov dword [esp + 0x5c], 0x5fac59fc
mov dword [esp + 0x60], 0x239a5df9
mov dword [esp + 0x64], 0x27c62185
mov dword [esp + 0x68], 0x2bd925c2
mov dword [esp + 0x6c], 0x2fce298f
mov dword [esp + 0x70], 0x339b2d98
mov dword [esp + 0x74], 0x3793319d
mov dword [esp + 0x78], 0x3b8f3587
mov dword [esp + 0x7c], 0x3fde398c
mov dword [esp + 0x80], 0x3b63dcf
mov dword [esp + 0x84], 0x7f101e0
mov dword [esp + 0x88], 0xbf905e4
mov dword [esp + 0x8c], 0xfbd09ba
mov dword [esp + 0x90], 0x13a40daa
mov dword [esp + 0x94], 0x17b711b5
mov dword [esp + 0x98], 0x1bfa15bb
mov dword [esp + 0x9c], 0x1ffe19f2
mov dword [esp + 0xa0], 0xe3471db8
mov dword [esp + 0xa4], 0xe706e14c
mov dword [esp + 0xa8], 0xebeae502
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x87
ja 0x410d00
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx - 0x5e849af2]
and esi, edx
add ecx, edx
add ecx, 0xa17b650e
add esi, esi
sub ecx, esi
mov dword [esp + 0x2e0], ecx
mov ecx, dword [esp + 0x2e0]
mov edx, ecx
xor edx, 0x9d
and ecx, 0x1d
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
mov ecx, dword [esp]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp], ecx
mov ecx, dword [esp]
cmp ecx, 0x88
jb 0x410ca0
movzx ecx, word [esp + 0x30]
test cx, cx
je 0x410d31
lea ebx, [esp + 0x2e0]
lea edx, [esp + 0x32]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x410d20
mov word [ebx], 0
movzx ecx, word [eax]
test cx, cx
je 0x410d61
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 0x410d50
mov dword [ebx], 0x220022
mov dword [ebx + 4], 0x22
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x44
mov dword [esp + 0x5c], 1
push 0xd3a7a30
push dword [0x447454]
call fcn.0043a440
add esp, 8
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x2e0]
push ecx
lea ecx, [esp + 0x34]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4417bc]
mov eax, dword [esp + 0x1c]
mov dword [esp], 0x28292e2f
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 0xb
ja 0x410ec4
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx esi, byte [esp + edx]
lea edx, [ecx + 0xfa]
and edx, esi
mov edi, 5
sub edi, ecx
add ecx, esi
not esi
or edi, esi
add ecx, edi
not edi
or edi, edx
sub ecx, edi
add ecx, 0x77ad25fb
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0xcc]
add cl, 0x2a
mov edx, dword [esp + 0x14]
mov byte [esp + edx], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 0xc
jb 0x410e70
mov ecx, dword [0x447460]
test ecx, ecx
je case.0x410b33.0
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x447464]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x410ef0
inc esi
cmp ecx, esi
jne 0x410ee0
jmp case.0x410b33.0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x410b33.0
push eax
push 1
push dword [0x447468]
push ecx
call fcn.00438760
add esp, 0x10
lea ecx, [esp + 0xae0]
call fcn.00409910
lea ecx, [esp + 0xb48]
call fcn.00409910
lea ecx, [esp + 0xbb0]
call fcn.00409910
lea ecx, [esp + 0xc18]
call fcn.00409910
lea ecx, [esp + 0xc80]
call fcn.00409910
lea ecx, [esp + 0x1f8]
call fcn.00409910
mov al, 1
jmp case.0x40ff1c.1
push esi
call fcn.00402f40
add esp, 4
push esi
call fcn.00402f40
add esp, 4
xor eax, eax
jmp dword [0x441770]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x54], edi
xor esi, esi
jmp 0x411048
push dword [esp + 0x2c]
call fcn.00409090
add esp, 4
mov ecx, ebx
call fcn.00409910
nop
nop
mov esi, dword [esp + 0x15c]
inc esi
push edi
call fcn.00402f00
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x4417cc]
mov dword [esp + 0x15c], esi
push esi
push edi
call fcn.00402f10
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x58], 0x592
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4110f1
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0x55]
and edx, ecx
mov esi, 0x768d80aa
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, 0xad
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x4110b0
push 3
push ebx
mov esi, dword [esp + 0x20]
push esi
call fcn.00402de0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4417d4]
mov word [esp + 0x58], 0x65fa
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x411181
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 + 0x58]
lea edx, [eax + ecx]
add edx, 0xbe72a9d1
add eax, 0xbe72a9d1
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x49
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x411140
push ebx
push esi
call fcn.00402850
add esp, 8
fnstcw word [esp + 0xde]
movzx eax, word [esp + 0xde]
or eax, 0xc00
mov word [esp + 0x15a], ax
fldcw word [esp + 0x15a]
fistp dword [esp + 0x170]
fldcw word [esp + 0xde]
mov eax, dword [esp + 0x170]
mov ecx, dword [case.0x411108.4]
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x4417ec]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x4417f4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x4417fc]
mov word [esp + 0x58], 0x8d27
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x61], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x411271
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0x67c2cf6a
add eax, 0x67c2cf6a
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x1a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x411230
push 2
push ebx
push esi
call fcn.00402de0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x4418a4]
mov word [esp + 0xf0], 0xb506
mov dword [esp + 0xf6], 0
mov dword [esp + 0xf2], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 9
ja 0x41130b
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0xf0]
lea edx, [eax + 0x61af4319]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x61af4318
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x51
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xf0], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xa
jb 0x4112c0
push 2
lea eax, [esp + 0xf4]
push eax
push dword [esp + 0x20]
call fcn.00402de0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4418ac]
mov ebx, esp
jmp dword [0x4418b4]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x441804]
mov word [esp + 0x58], 0x9526
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x4113c0
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 + 0x58]
lea edx, [eax + 0xbd]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xae2cfbd
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xd5
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x411380
push ebx
push esi
call fcn.00402710
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x58], 0xd9a2
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x411441
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0xb2435b5c
add eax, 0xb2435b5c
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x7c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x411400
push ebx
push esi
call fcn.00402710
add esp, 8
xor ecx, ecx
mov edx, dword [esp + 0x20]
test edx, edx
sete cl
jmp dword [ecx*4 + 0x441a1c]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441a24]
mov dword [esp + 0x18], eax
mov ecx, eax
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x411480
mov dword [esp + 0x14], ecx
mov eax, esi
sub eax, edx
xor ebx, ebx
mov dword [esp + 0x30], eax
test eax, eax
jle 0x4114d7
cmp byte [edx], 0
je 0x4114d7
xor ebx, ebx
mov edi, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push esi
push edi
call fcn.0040f840
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x4114d7
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4114b0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4114e5
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], ecx
cmp ecx, eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
jbe 0x412596
mov ebx, dword [esp + 0x34]
cmp dword [esp + 0x30], 0
jle 0x412596
mov ebx, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412596
lea eax, [esp + 0x58]
push eax
push esi
push edi
call fcn.0040f840
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x24]
jae 0x412592
add edi, eax
cmp edi, esi
mov eax, dword [esp + 0x14]
jb 0x411530
jmp 0x412596
mov word [esp + 0x58], 0x170
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov word [esp + 0x62], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x4115e4
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0x84e10a00
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 + 0xf0], eax
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x4115a0
push ebx
push esi
call fcn.00402710
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x58], 0x4dca
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x411670
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0xca]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xd8f6ceca
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x7a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411630
push ebx
push esi
call fcn.00402710
add esp, 8
xor ecx, ecx
mov edx, dword [esp + 0x14]
test edx, edx
sete cl
jmp dword [ecx*4 + 0x441aac]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441ab4]
mov dword [esp + 0x20], eax
mov eax, edx
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x4116a0
mov eax, ebx
sub eax, edx
xor edi, edi
mov dword [esp + 0x24], eax
test eax, eax
jle 0x4116f7
cmp byte [edx], 0
je 0x4116f7
xor edi, edi
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push ebx
push esi
call fcn.0040f840
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, ebx
jae 0x4116f7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4116d0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411705
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
mov esi, dword [esp + 0x14]
jbe 0x41176b
mov edi, dword [esp + 0x50]
cmp dword [esp + 0x24], 0
jle 0x41176b
mov edi, dword [esp + 0x50]
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x41176b
lea eax, [esp + 0x58]
push eax
push ebx
push esi
call fcn.0040f840
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x41176b
add esi, eax
cmp esi, ebx
jb 0x411740
mov word [edi], 0
mov edi, 0xfffffffe
xor eax, eax
mov ecx, dword [esp + 0x20]
nop
nop
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411780
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x41179b
mov ecx, 0xffffffff
push ecx
call fcn.00409080
add esp, 4
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x20], 0
jne 0x4117c9
mov ebx, dword [esp + 0x20]
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 0x4117c0
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x2c]
add edi, eax
mov esi, eax
cmp edi, eax
mov eax, dword [esp + 0x20]
jbe 0x411831
mov esi, dword [esp + 0x2c]
test ebx, ebx
jle 0x411831
mov ecx, eax
add ecx, ebx
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax], 0
je 0x411831
mov ebx, eax
lea eax, [esp + 0x58]
push eax
push ecx
push ebx
call fcn.0040f840
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [esi], cx
add esi, 2
cmp esi, edi
jae 0x411831
add ebx, eax
mov ecx, dword [esp + 0x18]
cmp ebx, ecx
mov eax, ebx
jb 0x411800
mov word [esi], 0
mov word [esp + 0x58], 0x2931
mov byte [esp + 0x5a], 0xa0
mov dword [esp + 0x5b], 0
mov dword [esp + 0x5e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x4118b0
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 + 0x58]
lea edx, [eax + 0xf1d9c9b]
and edx, ecx
add eax, ecx
add eax, 0xf1d9c9b
add edx, edx
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xc3
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x411870
lea ebx, [esp + 0x58]
push ebx
push dword [ebp + 8]
call fcn.00402990
add esp, 8
mov edi, eax
xor eax, eax
test edi, edi
setne al
mov dword [esp + 0x24], 0
xor esi, esi
jmp dword [eax*4 + 0x441abc]
mov ecx, ebx
push 3
call fcn.004098d0
push esi
mov esi, dword [esp + 0x28]
push esi
push dword [esp + 0x34]
push dword [esp + 0x5c]
push ebx
call fcn.00418f50
add esp, 0x14
mov ecx, ebx
call fcn.0040a280
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x441aec]
mov edx, esi
add esi, 0xfffffffc
mov eax, dword [edx - 4]
lea ecx, [eax + eax*2]
lea edi, [edx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x441af4]
jmp dword [0x441b08]
xor eax, eax
cmp edi, edx
sete al
jmp dword [eax*4 + 0x441afc]
mov eax, dword [edi - 0xc]
add edi, 0xfffffff4
test eax, eax
je 0x411940
push eax
call fcn.00409090
mov edx, dword [esp + 0x28]
add esp, 4
jmp 0x411940
sete al
movzx eax, al
jmp dword [eax*4 + 0x44180c]
mov word [esp + 0x58], 0xa516
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x61], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x4119fb
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 + 0x58]
lea edx, [eax + ecx]
add edx, 0x899c0cc5
add eax, 0x899c0cc5
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 + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x9d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x4119b0
push 2
push ebx
push esi
call fcn.00402de0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x441814]
mov word [esp + 0xf0], 0xdb9
mov dword [esp + 0xf6], 0
mov dword [esp + 0xf2], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 9
ja 0x411abb
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
movzx edx, byte [esp + eax + 0xf0]
lea esi, [ecx + 0xaa]
mov edi, 0x6612f555
sub edi, ecx
lea eax, [ecx + edx]
add eax, 0x99ed0aaa
and esi, edx
or edi, edx
add edi, ecx
lea ecx, [esi + edi]
add ecx, 0x99ed0aab
mov edx, ecx
xor edx, eax
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov dword [esp], ecx
mov eax, dword [esp]
mov ecx, eax
xor ecx, 0x59
and eax, 0x59
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 0xf0], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0xa
jb 0x411a50
push 5
lea eax, [esp + 0xf4]
push eax
mov esi, dword [esp + 0x20]
push esi
call fcn.00402de0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x54]
jmp dword [ecx*4 + 0x44181c]
mov word [esp], 0x17a
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov byte [esp + 0xa], 0
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 0xa
ja 0x411b70
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
movzx eax, byte [esp + eax]
lea esi, [ecx + 0x7a17000]
mov edx, ecx
and edx, eax
xor esi, eax
not eax
or ecx, eax
add ecx, edx
sub eax, ecx
add eax, esi
lea eax, [eax + edx*2]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 0xb
jb 0x411b20
push 2
lea eax, [esp + 4]
push eax
mov esi, dword [esp + 0x20]
push esi
call fcn.00402de0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441824]
mov word [esp + 0x38], 0x91fa
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x41], 0
mov dword [esp + 0xe0], 0
mov eax, dword [esp + 0xe0]
cmp eax, 0xc
ja 0x411c2a
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe0]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, eax
and edx, 0xf7de9413
xor eax, 0xf7de9413
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xc0], edx
mov eax, dword [esp + 0xc0]
add al, 0x7b
mov ecx, dword [esp + 0xe0]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xe0]
mov eax, dword [esp + 0xe0]
cmp eax, 0xd
jb 0x411bd0
push 3
lea eax, [esp + 0x3c]
push eax
push esi
call fcn.00402de0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44182c]
mov word [esp + 0xc0], 0xccd0
mov byte [esp + 0xc2], 0x38
mov dword [esp + 0xc7], 0
mov dword [esp + 0xc3], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xa
ja 0x411cd9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0xc0]
lea edx, [eax - 0x6fdd0b89]
add eax, 0x77
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0xe0]
add al, 0xbf
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0xc0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xb
jb 0x411c90
push 3
lea eax, [esp + 0xc4]
push eax
push esi
call fcn.00402de0
add esp, 0xc
test eax, eax
sete bl
mov eax, dword [case.0x411c41.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
movzx eax, bl
lea ebx, [esp + 0x58]
jmp dword [eax*4 + 0x441844]
mov word [esp + 0x58], 0x170
mov dword [esp + 0x5e], 0
mov dword [esp + 0x5a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x411d84
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0x18113c00
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 + 0xf0], eax
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x411d40
push ebx
push esi
call fcn.00402710
add esp, 8
mov dword [esp + 0x24], eax
mov word [esp + 0x58], 0x59ed
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov byte [esp + 0x62], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x411e07
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x58]
lea ecx, [eax - 0x3a9d450c]
xor ecx, edx
mov esi, 0xb
sub esi, eax
add eax, 0xf4
and eax, esi
and eax, edx
sub ecx, eax
mov dword [esp + 0xf0], ecx
mov eax, dword [esp + 0xf0]
add al, 0x54
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x411dc0
push ebx
mov esi, dword [esp + 0x1c]
push esi
call fcn.00402990
add esp, 8
mov dword [esp + 0x34], eax
mov word [esp + 0x58], 0x18c
mov dword [esp + 0x5e], 0
mov dword [esp + 0x5a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x411e81
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0xd68125ab
add eax, 0xd68125ab
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0x53
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x411e40
push ebx
push esi
call fcn.00402710
add esp, 8
mov dword [esp + 0x4c], eax
mov word [esp + 0x58], 0x3194
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x411f0a
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x30f81ef8]
add eax, 8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
mov ecx, eax
xor ecx, 0xc7
and eax, 0x47
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x411ec0
push ebx
push esi
call fcn.00402850
add esp, 8
fnstcw word [esp + 0xdc]
movzx eax, word [esp + 0xdc]
or eax, 0xc00
mov word [esp + 0x158], ax
fldcw word [esp + 0x158]
fistp dword [esp + 0x16c]
fldcw word [esp + 0xdc]
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x2c], eax
mov word [esp + 0x58], 0x380c
mov byte [esp + 0x5a], 0xb4
mov dword [esp + 0x5b], 0
mov dword [esp + 0x5f], 0
mov word [esp + 0x63], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x411fcd
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 + 0x58]
lea edx, [eax + 0x19]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x137cfa19
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x51
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x411f90
push ebx
push esi
call fcn.00402850
add esp, 8
fnstcw word [esp + 0xda]
movzx eax, word [esp + 0xda]
or eax, 0xc00
mov word [esp + 0x156], ax
fldcw word [esp + 0x156]
fistp dword [esp + 0x168]
fldcw word [esp + 0xda]
mov eax, dword [esp + 0x168]
mov dword [esp + 0x50], eax
mov word [esp + 0x58], 0x716c
mov byte [esp + 0x5a], 0x84
mov dword [esp + 0x5b], 0
mov dword [esp + 0x5f], 0
mov dword [esp + 0x63], 0
mov byte [esp + 0x67], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41209b
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0xabbd141
add eax, 0xabbd141
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
mov ecx, eax
or ecx, 0x38
and eax, 0x38
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x412050
push ebx
push esi
call fcn.00402ad0
add esp, 8
mov dword [esp + 0xd0], eax
mov esi, 0xffffffff
mov eax, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + esi + 1], 0
lea esi, [esi + 1]
jne 0x4120c0
mov edx, eax
add edx, esi
xor edi, edi
test esi, esi
mov dword [esp + 0x18], edx
jle 0x41211b
cmp byte [eax], 0
je 0x41211b
xor edi, edi
mov ebx, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push edx
push ebx
call fcn.0040f840
mov edx, dword [esp + 0x24]
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, edx
jae 0x41211b
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4120f0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x412129
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + edi*2]
mov ebx, eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x14], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
jbe 0x4129c6
mov ebx, dword [esp + 0x14c]
test esi, esi
jle 0x4129c6
mov ebx, dword [esp + 0x14c]
mov dword [esp + 0x20], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4129c6
lea eax, [esp + 0x58]
push eax
push edx
push ecx
mov esi, ecx
mov edi, edx
call fcn.0040f840
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x14]
jae 0x4129c2
add esi, eax
cmp esi, edi
mov ecx, esi
mov edx, edi
mov edi, dword [esp + 0x20]
jb 0x412180
jmp 0x4129c6
push edi
call fcn.00402f00
add esp, 4
mov dword [esp + 0x34], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x4121ec
mov esi, eax
test dl, dl
jne 0x4121f2
mov ecx, esi
push ecx
call fcn.00409080
add esp, 4
mov esi, dword [esp + 0x34]
mov dword [eax], esi
add eax, 4
mov dword [esp + 0x24], eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x441ac4]
lea eax, [esi + esi*2]
mov ecx, dword [esp + 0x24]
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 + 0x441acc]
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 + 0x441acc]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x14], 0
cmp ecx, esi
setb al
mov dword [esp + 0x30], edi
jmp dword [eax*4 + 0x441ad4]
lea ebx, [esp + 0x58]
mov word [edx], 0
mov ecx, dword [esp + 0x14]
inc ecx
xor eax, eax
mov esi, dword [esp + 0x34]
mov dword [esp + 0x14], ecx
cmp ecx, esi
setb al
mov edi, dword [esp + 0x30]
jmp dword [eax*4 + 0x441ad4]
mov ebx, dword [esp + 0x14]
jmp dword [0x441adc]
push ebx
push edi
call fcn.00402f10
add esp, 8
push ebx
push edi
call fcn.00402f10
add esp, 8
jmp dword [0x441ae8]
mov esi, eax
mov word [esp + 0x58], 0x272d
mov byte [esp + 0x5a], 0xb4
mov dword [esp + 0x5f], 0
mov dword [esp + 0x5b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x41236a
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x58]
add ecx, 0xf141eb69
mov eax, ecx
and eax, edx
xor ecx, edx
lea ecx, [ecx + eax*2]
add eax, eax
mov edx, ecx
xor edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x21
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x412320
lea ebx, [esp + 0x58]
push ebx
push esi
call fcn.00402710
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x58], 0xb21
mov byte [esp + 0x5a], 0x8a
lea eax, [esp + 0x5b]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41240f
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 + 0x58]
lea edx, [eax + 0xea]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x82d905ea
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
mov ecx, eax
or ecx, 0x99
and eax, 0x99
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x4123c0
push ebx
push esi
call fcn.00402710
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x58], 0x514d
mov byte [esp + 0x5a], 0xa4
lea eax, [esp + 0x5b]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x412491
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0x7c4b8ce5
add eax, 0x7c4b8ce5
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf0]
add al, 0xbd
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x412450
push ebx
push esi
call fcn.00402710
add esp, 8
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x24]
mov dword [edx + ecx*4], 0
mov esi, dword [esp + 0x20]
mov dword [edx + ecx*4 + 4], esi
lea esi, [edx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov edi, 0xfffffffe
mov ebx, 0xffffffff
mov eax, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x4124d0
mov ecx, edi
and ecx, 2
mov eax, ebx
xor eax, 1
add eax, ecx
jns 0x412500
mov eax, 0xffffffff
jmp 0x412502
add eax, eax
push eax
call fcn.00409080
add esp, 4
mov edx, eax
mov dword [esi], eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x412529
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412520
mov dword [esp + 0x58], 0
add edi, edx
cmp edi, edx
jbe 0x4122a0
test ebx, ebx
jle 0x4122a0
mov esi, ecx
add esi, ebx
lea ebx, [esp + 0x58]
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4122a4
push ebx
push esi
push ecx
mov ebx, ecx
mov dword [esp + 0x24], edx
call fcn.0040f840
mov edx, dword [esp + 0x24]
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x4122a0
add ebx, eax
cmp ebx, esi
mov ecx, ebx
lea ebx, [esp + 0x58]
jb 0x412550
jmp 0x4122a4
mov eax, dword [esp + 0x14]
mov word [ebx], 0
mov esi, 0xffffffff
cmp byte [eax + esi + 1], 0
lea esi, [esi + 1]
jne 0x4125a0
add dword [esp + 0x18], esi
xor edi, edi
mov dword [esp + 0x24], esi
test esi, esi
jle 0x4125fb
cmp byte [eax], 0
je 0x4125fb
xor edi, edi
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
mov esi, dword [esp + 0x1c]
push esi
push ebx
call fcn.0040f840
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x4125fb
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4125d0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x412609
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], ecx
cmp ecx, eax
mov ebx, dword [esp + 0x14]
jbe 0x41266f
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x24], 0
jle 0x41266f
mov edi, dword [esp + 0x30]
nop
nop
cmp byte [ebx], 0
je 0x41266f
lea eax, [esp + 0x58]
push eax
mov esi, dword [esp + 0x1c]
push esi
push ebx
call fcn.0040f840
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x20]
jae 0x41266f
add ebx, eax
cmp ebx, esi
jb 0x412640
mov word [edi], 0
mov word [esp + 0x58], 0xb5a1
mov byte [esp + 0x5a], 0xa
mov dword [esp + 0x5b], 0
mov dword [esp + 0x5f], 0
mov word [esp + 0x63], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x4126f0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x4744a0d6]
and edx, ecx
add eax, ecx
add eax, 0xb8bb5f2a
add edx, edx
sub eax, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xda
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x4126b0
lea eax, [esp + 0x58]
push eax
push dword [ebp + 8]
call fcn.00402990
add esp, 8
xor ecx, ecx
mov dword [esp + 0x24], eax
test eax, eax
setne cl
xor edi, edi
mov dword [esp + 0x14], 0
jmp dword [ecx*4 + 0x441a2c]
mov dword [esp + 0x20], edi
lea ebx, [esp + 0x58]
mov ecx, ebx
push 2
call fcn.004098d0
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
jmp dword [0x441a4c]
push dword [esp + 0x24]
call fcn.00402f00
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x412764
mov esi, eax
test dl, dl
jne 0x41276a
mov ecx, esi
push ecx
call fcn.00409080
add esp, 4
mov dword [eax], edi
add eax, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x441a34]
lea ecx, [edi + edi*2]
lea esi, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea ecx, [eax + 0xc]
xor edx, edx
cmp ecx, esi
sete dl
jmp dword [edx*4 + 0x441a3c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, esi
sete dl
jmp dword [edx*4 + 0x441a3c]
mov dword [esp + 0x14], eax
xor ebx, ebx
xor eax, eax
cmp ebx, edi
setb al
mov dword [esp + 0x20], edi
jmp dword [eax*4 + 0x441a44]
lea eax, [esp + 0x58]
push eax
push edi
call fcn.00402ad0
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [ebx + ebx*2]
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
push edx
push dword [esp + 0x1c]
push esi
call fcn.00416150
inc ebx
xor eax, eax
mov edi, dword [esp + 0x20]
cmp ebx, edi
setb al
jmp dword [eax*4 + 0x441a44]
push ebx
push dword [esp + 0x28]
call fcn.00402f10
add esp, 8
mov edi, eax
mov word [esp + 0x58], 0xcfc5
mov byte [esp + 0x5a], 0x62
lea eax, [esp + 0x5b]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x4128bb
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0x59a8cb90
add eax, 0x59a8cb90
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 + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x10
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x412870
lea eax, [esp + 0x58]
push eax
push edi
call fcn.00402710
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x58], 0xa351
mov byte [esp + 0x5a], 0x38
lea eax, [esp + 0x5b]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x412940
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0xa7]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x94a978a7
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0x6f
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x412900
lea eax, [esp + 0x58]
push eax
push edi
call fcn.00402710
add esp, 8
mov esi, eax
mov dword [esp + 0x58], 0x23848990
mov dword [esp + 0x5c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x4127f0
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 + 0x58]
lea edx, [eax + 6]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x3518b306
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add al, 0xd6
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x412980
jmp 0x4127f0
mov edi, dword [esp + 0x20]
mov word [ebx], 0
mov eax, esp
push eax
push 0
push 0
push edi
mov ebx, dword [esp + 0x15c]
push ebx
push 0
call dword [0x44745c]
mov esi, dword [esp]
lea eax, [esi + esi]
test esi, esi
jns 0x4129f2
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov ecx, eax
mov eax, esp
push eax
push esi
mov dword [esp + 0x38], ecx
push ecx
push edi
push ebx
push 0
call dword [0x44745c]
jmp dword [0x44184c]
push ebx
call fcn.00409090
add esp, 4
mov ecx, dword [esp + 0x4c]
mov eax, ecx
jmp 0x414127
mov ecx, dword [esp + 0x4c]
mov edi, ecx
jmp 0x41411f
push esi
call fcn.00402f00
add esp, 4
jmp dword [0x44185c]
xor ecx, ecx
mov edx, dword [esp + 0x20]
cmp edx, eax
setb cl
jmp dword [ecx*4 + 0x441864]
push edx
push esi
call fcn.00402ee0
add esp, 8
push eax
call fcn.00402830
add esp, 4
mov ebx, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x44186c]
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x412d20
sub esi, ebx
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x412d38
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov edx, esi
and edx, 1
mov ecx, esi
xor ecx, 1
lea edi, [ecx + edx*2]
mov dword [esp + 0x14], eax
lea ecx, [eax - 2]
test ebx, ebx
jne 0x412d69
mov esi, ebx
not esi
xor edx, edx
nop
inc esi
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x412d60
mov dword [esp + 0xf0], 0
lea ecx, [ecx + edi*2]
mov eax, dword [esp + 0x14]
mov edi, eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
jbe 0x412de0
mov edi, dword [esp + 0x14]
test esi, esi
jle 0x412de0
mov eax, ebx
add eax, esi
mov esi, eax
mov edi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x412de0
lea eax, [esp + 0xf0]
push eax
push esi
push ebx
call fcn.0040f840
add esp, 0xc
movzx ecx, word [esp + 0xf0]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x18]
jae 0x412de0
add ebx, eax
cmp ebx, esi
jb 0x412da0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esp + 0xd0], 0
setg al
mov word [edi], 0
push 0
push eax
push dword [esp + 0x34]
push dword [esp + 0x5c]
mov ebx, dword [esp + 0x24]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x3c]
lea eax, [esp + 0x74]
push eax
call fcn.0041b3e0
add esp, 0x20
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x34]
jmp dword [0x441884]
jmp dword [0x441880]
push esi
call fcn.00402f00
add esp, 4
jmp case.0x411c41.11
jmp dword [0x441894]
movzx eax, bl
lea ebx, [esp + 0x58]
jmp dword [eax*4 + 0x4418ec]
push 5
push ebx
push esi
call fcn.00402de0
add esp, 0xc
push 5
push ebx
push esi
call fcn.00402de0
add esp, 0xc
jmp dword [0x4418d0]
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x4418d4]
movzx eax, al
mov edi, dword [esp + 0x54]
jmp dword [eax*4 + 0x441a5c]
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x42], 0
cmp eax, 0x3ff
ja 0x413c8b
mov byte [esp + 0x41], 0x30
lea esi, [esp + 0x41]
jmp 0x413cf4
xor eax, eax
mov esi, dword [esp + 0x14]
test esi, esi
sete al
jmp dword [eax*4 + 0x441a64]
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0x42]
cmp eax, 0x19000
jb 0x413cde
nop
nop
nop
nop
nop
mov eax, ecx
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul eax, edx, 0x64
mov edi, ecx
sub edi, eax
movzx eax, word [edi + edi + 0x43e528]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x413ca0
cmp edx, 9
ja 0x413ce5
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x413cf4
mov edx, ecx
cmp edx, 9
jbe 0x413cd1
movzx eax, word [edx + edx + 0x43e528]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov dword [esp], 0x83bccbf3
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov byte [esp + 0xc], 0
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 0xc
ja 0x413d8d
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx edx, byte [esp + ecx]
mov ecx, 0xd04c78e9
sub ecx, eax
add eax, 0x16
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
or ecx, 0x65
and eax, 0x65
add eax, ecx
inc al
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 0xd
jb 0x413d30
mov dword [esp + 0xf0], 0xc9cadecb
mov dword [esp + 0xf4], 0x9fd3cfcb
mov dword [esp + 0xf8], 0xcfcbd2d8
mov dword [esp + 0xfc], 0xc394d1d5
mov dword [esp + 0x100], 0xecfda9c7
mov dword [esp + 0x104], 0xeaace9f4
mov dword [esp + 0x108], 0xfcf1f3f6
mov dword [esp + 0x10c], 0xa7fbf2f9
mov dword [esp + 0x110], 0xe6fdfaf6
mov dword [esp + 0x114], 0xebbce9fd
mov dword [esp + 0x118], 0xebe4b1ef
mov dword [esp + 0x11c], 0xf0e1b5f5
mov dword [esp + 0x120], 0x998f9fe4
mov dword [esp + 0x124], 0x9e98cdd6
mov dword [esp + 0x128], 0xc39c829a
mov dword [esp + 0x12c], 0x9a818692
mov dword [esp + 0x130], 0x8ed88d81
mov dword [esp + 0x134], 0xf59bb781
mov word [esp + 0x138], 0x31de
mov dword [esp + 0x13e], 0
mov dword [esp + 0x13a], 0
mov dword [esp + 0xe0], 0
mov eax, dword [esp + 0xe0]
cmp eax, 0x51
ja 0x413f08
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe0]
movzx edx, byte [esp + ecx + 0xf0]
lea edi, [eax + 0x3db59b8f]
lea ecx, [eax + edx]
add ecx, 0x3db59b8f
and edi, edx
add eax, 0x8f
and eax, edx
add eax, edi
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
mov ecx, eax
xor ecx, 0x16
and eax, 0x16
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xe0]
mov byte [esp + ecx + 0xf0], al
inc dword [esp + 0xe0]
mov eax, dword [esp + 0xe0]
cmp eax, 0x52
jb 0x413e90
lea eax, [0x446453]
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x413f10
movzx ecx, byte [esp + 0xf0]
test cl, cl
je 0x413f42
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 0x413f30
add eax, edx
mov edi, dword [esp + 0x54]
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x413f6b
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 0x413f60
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x413f8d
lea edx, [esp + 1]
mov esi, dword [esp + 0x14]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x413f80
jmp 0x413f91
mov esi, dword [esp + 0x14]
mov byte [eax], 0
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x441a64]
mov word [esp], 0xb10d
mov dword [esp + 6], 0
mov dword [esp + 2], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 9
ja 0x414059
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx]
lea edx, [eax + ecx]
add edx, 0x629c6818
add eax, 0x629c6818
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
mov ecx, eax
xor ecx, 0x57
and eax, 0x57
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xa
jb 0x414010
jmp dword [0x4418c0]
mov word [esp], 0xb10d
mov dword [esp + 6], 0
mov dword [esp + 2], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 9
ja case.0x411328.2
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx]
lea edx, [eax + ecx]
add edx, 0x629c6818
add eax, 0x629c6818
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
mov ecx, eax
xor ecx, 0x57
and eax, 0x57
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xa
jb 0x414090
jmp case.0x411328.2
mov esi, dword [esp + 0x18]
jmp dword [0x4418c8]
lea eax, [edi + 1]
cmp byte [edi], 0
je 0x41412b
mov edi, eax
jmp 0x41411f
mov eax, edi
sub eax, ecx
xor ebx, ebx
mov dword [esp + 0x14], eax
test eax, eax
jle 0x414177
cmp byte [ecx], 0
je 0x414177
xor ebx, ebx
mov esi, dword [esp + 0x4c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push edi
push esi
call fcn.0040f840
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x414177
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x414150
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x414185
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
mov esi, dword [esp + 0x4c]
jbe 0x4141eb
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x14], 0
jle 0x4141eb
mov ebx, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x4141eb
lea eax, [esp + 0x58]
push eax
push edi
push esi
call fcn.0040f840
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x18]
jae 0x4141eb
add esi, eax
cmp esi, edi
jb 0x4141c0
mov word [ebx], 0
lea ebx, [esp + 0x58]
mov ecx, ebx
push 1
call fcn.004098d0
mov dword [esp + 0x20], 0
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x34]
jmp dword [0x441858]
jmp dword [0x441b1c]
mov edi, dword [esp + 0x54]
jmp dword [0x441b14]
push dword [esp + 0x50]
call fcn.00409090
add esp, 4
jmp dword [0x441b1c]
push dword [esp + 0x20]
push esi
push edi
push dword [esp + 0x40]
push ebx
call fcn.00416680
add esp, 0x14
mov ecx, ebx
call fcn.0040a280
push dword [esp + 0x20]
push esi
push edi
push dword [esp + 0x40]
push ebx
call fcn.00416680
add esp, 0x14
mov ecx, ebx
call fcn.0040a280
jmp dword [0x441a54]
push esi
call fcn.00409090
add esp, 4
push esi
call fcn.00409090
add esp, 4
jmp dword [0x441b0c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [case.0x4122c1.26]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor esi, esi
lea edi, [esp + 0x118]
mov dword [esp + 0x108], ebx
jmp 0x414348
push dword [esp + 0x2c]
call fcn.00409090
add esp, 4
inc esi
mov ebx, dword [esp + 0x108]
push ebx
call fcn.00402f00
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
jmp dword [ecx*4 + 0x441b44]
push esi
push ebx
call fcn.00402f10
add esp, 8
mov dword [esp + 0xc], eax
mov word [esp + 0x118], 0xa129
mov dword [esp + 0x11a], 0
mov dword [esp + 0x11e], 0
mov word [esp + 0x122], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 0xb
ja 0x414404
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx + 0x118]
lea edx, [eax + 0x4dd6f99b]
and edx, ecx
add eax, ecx
add eax, 0x4dd6f99b
add edx, edx
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xc3
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0xc
jb 0x4143b0
push 2
push edi
push dword [esp + 0x14]
call fcn.00402de0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x441b4c]
mov edi, esi
mov word [esp + 0x48], 0x514c
mov byte [esp + 0x4a], 0xa4
mov dword [esp + 0x4b], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 9
ja 0x4144ab
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0xe5]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x8186f2e4
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xbd
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xa
jb 0x414460
push 3
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x14]
call fcn.00402de0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov esi, edi
lea edi, [esp + 0x118]
jmp dword [ecx*4 + 0x441b54]
movzx eax, bl
jmp dword [eax*4 + 0x441b6c]
mov dword [esp + 0x38], esi
mov word [esp + 0x118], 0xf991
mov dword [esp + 0x11a], 0
mov word [esp + 0x11e], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 7
ja 0x414580
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx + 0x118]
lea edx, [eax + ecx]
add edx, 0xebc690ff
add eax, 0xebc690ff
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
mov ecx, eax
xor ecx, 6
and eax, 6
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 8
jb 0x414520
push edi
push dword [esp + 0x10]
call fcn.00402710
add esp, 8
mov esi, eax
mov word [esp + 0x118], 0x514c
mov byte [esp + 0x11a], 0x24
mov dword [esp + 0x11b], 0
mov dword [esp + 0x11f], 0
mov byte [esp + 0x123], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 0xb
ja 0x414635
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx + 0x118]
lea edx, [eax + ecx]
add edx, 0x81b6d6a5
add eax, 0x81b6d6a5
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0x7d
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0xc
jb 0x4145e0
push edi
push dword [esp + 0x10]
call fcn.00402850
add esp, 8
fnstcw word [esp + 0xae]
movzx eax, word [esp + 0xae]
or eax, 0xc00
mov word [esp + 0xfa], ax
fldcw word [esp + 0xfa]
fistp dword [esp + 0x110]
fldcw word [esp + 0xae]
mov eax, dword [esp + 0x110]
mov dword [esp + 0x3c], eax
mov word [esp + 0x118], 0x4d21
mov dword [esp + 0x11a], 0
mov dword [esp + 0x11e], 0
mov dword [esp + 0x122], 0
mov word [esp + 0x126], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 0xf
ja 0x414718
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx + 0x118]
add eax, 0xaeb3ccca
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x7a
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0x10
jb 0x4146d0
push edi
push dword [esp + 0x10]
call fcn.00402850
add esp, 8
mov eax, 0xffffffff
mov edx, esi
nop
nop
nop
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne 0x414730
fnstcw word [esp + 0xac]
movzx ecx, word [esp + 0xac]
or ecx, 0xc00
mov word [esp + 0xf8], cx
fldcw word [esp + 0xf8]
fistp dword [esp + 0x10c]
fldcw word [esp + 0xac]
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x48], 0
mov ecx, edi
test eax, eax
jle 0x4147e0
mov esi, edx
add esi, eax
xor edi, edi
lea ecx, [esp + 0x118]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x4147e0
lea eax, [esp + 0x48]
push eax
push esi
push edx
mov ebx, edx
mov dword [esp + 0x38], ecx
call fcn.0040f840
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov edx, dword [esp + 0x2c]
mov word [edx], cx
mov ecx, dword [esp + 0x2c]
add ecx, 2
cmp edi, 0x3fd
ja 0x4147e0
add ebx, eax
inc edi
cmp ebx, esi
mov edx, ebx
jb case.default.0x414809
nop
nop
mov word [ecx], 0
lea eax, [esp + 0x114]
push eax
lea eax, [esp + 0x38]
push eax
lea edi, [esp + 0x120]
push edi
call fcn.0040c1c0
add esp, 0xc
movzx eax, al
mov esi, dword [esp + 0x38]
jmp dword [eax*4 + 0x441b74]
xor eax, eax
cmp dword [esp + 0x30], 0
sete al
xor ebx, ebx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x104], eax
jmp dword [eax*4 + 0x441b7c]
mov word [esp + 0x48], 0xb506
mov dword [esp + 0x4a], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov word [esp + 0x56], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xf
ja 0x4148b6
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add edx, 0xb8b4b319
add eax, 0xb8b4b319
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0xb0]
add al, 0x51
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x10
jb 0x414870
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x10]
call fcn.00402710
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441b84]
mov dword [esp + 0x48], 0x32b6b5b6
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 7
ja 0x414950
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + ecx + 0x48]
lea ecx, [eax + edx]
add ecx, 0x9bc0eb99
add eax, 0x9bc0eb99
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 + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xd1
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 8
jb 0x414900
mov eax, dword [esp + 0x48]
push dword [eax + 0x14]
call fcn.00409760
add esp, 4
call fcn.00409770
mov esi, eax
and esi, 0xf
or esi, 0x10
xor edi, edi
xor eax, eax
cmp edi, esi
setb al
lea ebx, [esp + 0xb0]
jmp dword [eax*4 + 0x441b94]
call fcn.00409770
mov ecx, eax
mov eax, dword [case.0x4148ce.13]
nop
nop
nop
nop
jmp eax
mov eax, ecx
mov edx, 0x38e38e39
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
jmp dword [0x441bc0]
mov word [ebx], ax
add ebx, 2
jmp dword [0x441bc4]
mov word [ebx], ax
add ebx, 2
mov word [ebx], ax
add ebx, 2
jmp dword [0x441bc4]
jmp dword [0x441bd8]
inc edi
xor eax, eax
cmp edi, esi
setb al
jmp dword [eax*4 + 0x441b94]
mov eax, dword [case.0x41497c.4]
nop
nop
nop
nop
nop
nop
jmp eax
mov word [ebx], 0
mov dword [esp + 0x10], 0x7bac7981
mov dword [esp + 0x14], 0x7fa37dbd
mov dword [esp + 0x18], 0x739771ae
mov dword [esp + 0x1c], 0x777475de
mov dword [esp + 0x20], 0
mov word [esp + 0x24], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x15
ja 0x414abf
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 + ecx]
add edx, 0x89753b0f
add eax, 0x89753b0f
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0x97
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
mov eax, dword [esp + 4]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
cmp eax, 0x16
jb 0x414a70
movzx eax, word [esp + 0x10]
lea esi, [esp + 0x48]
test ax, ax
je 0x414af1
lea ecx, [esp + 0x12]
lea esi, [esp + 0x48]
nop
nop
nop
nop
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 0x414ae0
mov word [esi], 0
movzx eax, word [esp + 0xb0]
test ax, ax
je 0x414b21
lea ecx, [esp + 0xb2]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414b10
mov word [esi], 0
lea eax, [esp + 0x48]
sub esi, eax
sar esi, 1
lea ecx, [esp + 0xfc]
push ecx
push 0
push 0
push esi
push eax
push 0
call dword [0x44745c]
mov edi, dword [esp + 0xfc]
mov eax, edi
add eax, 4
lea eax, [edi + edi + 8]
jns 0x414b5b
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov ebx, eax
lea eax, [esp + 0xfc]
push eax
push edi
push ebx
push esi
lea eax, [esp + 0x58]
push eax
push 0
call dword [0x44745c]
xor eax, eax
mov ecx, dword [esp + 0x3c]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x441bdc]
xor eax, eax
cmp ecx, 1
sete al
lea edi, [esp + 0x118]
jmp dword [eax*4 + 0x441be4]
xor eax, eax
cmp ecx, 2
sete al
jmp dword [eax*4 + 0x441bec]
jmp dword [0x441bf4]
jmp dword [0x441b5c]
mov word [esp + 0xb0], 0x35ad
mov dword [esp + 0xb2], 0
mov dword [esp + 0xb6], 0
mov byte [esp + 0xba], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xa
ja 0x414c39
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xb0]
add eax, 0xf8ea0989
xor eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x41
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xb
jb 0x414c00
push 3
lea eax, [esp + 0xb4]
push eax
push dword [esp + 0x14]
call fcn.00402de0
add esp, 0xc
jmp case.0x4144ce.2
push 3
lea eax, [esp + 0xb4]
push eax
push dword [esp + 0x14]
call fcn.00402de0
add esp, 0xc
test eax, eax
sete bl
jmp dword [0x441b64]
mov word [esp + 0xb0], 0x35ad
mov dword [esp + 0xb2], 0
mov dword [esp + 0xb6], 0
mov byte [esp + 0xba], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xa
ja 0x414c60
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xb0]
add eax, 0xf8ea0989
xor eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x41
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xb
jb 0x414cc0
jmp 0x414c60
mov ecx, eax
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x414d00
mov ecx, edi
sub ecx, eax
xor ebx, ebx
mov dword [esp + 0xf4], ecx
test ecx, ecx
jle 0x414f27
mov dword [esp + 0x40], eax
cmp byte [eax], 0
je 0x414f2b
xor ebx, ebx
mov esi, dword [esp + 0x40]
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push edi
push esi
call fcn.0040f840
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x414f2b
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x414d30
jmp 0x414f2b
mov dword [esp + 0x10], 0x8bef85d4
mov dword [esp + 0x14], 0x8fe38912
mov word [esp + 0x18], 0x8d8e
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov byte [esp + 0x26], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x16
lea edi, [esp + 0x118]
ja 0x414e04
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
and edx, 0x28004595
xor eax, 0x28004595
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0xed
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
mov eax, dword [esp + 8]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
cmp eax, 0x17
jb 0x414db0
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414e10
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x414f13
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 0x414e30
jmp 0x414f11
mov dword [esp + 0x10], 0x3e60dde
mov dword [esp + 0x14], 0x79a019c
mov word [esp + 0x18], 0x504
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x13
ja 0x414ed5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x4db1a4d6]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x4db1a4d5
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x26
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x14
jb 0x414e90
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414ee0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x414f13
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 0x414f00
add eax, edx
mov word [eax], 0
mov eax, dword [case.0x414809.38]
nop
nop
nop
jmp eax
jmp 0x41501d
mov dword [esp + 0x40], eax
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x414f39
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x2c], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x40]
jbe 0x414fb9
mov esi, dword [esp + 0x44]
cmp dword [esp + 0xf4], 0
jle 0x414fb9
mov esi, dword [esp + 0x44]
mov dword [esp + 0x30], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x414fb9
lea eax, [esp + 0x48]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040f840
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x2c]
jae 0x414fb5
add ebx, eax
cmp ebx, edi
mov ecx, ebx
mov ebx, dword [esp + 0x30]
jb 0x414f80
jmp 0x414fb9
mov ebx, dword [esp + 0x30]
mov word [esi], 0
lea eax, [esp + 0x48]
push eax
push 0
push 0
push ebx
mov edi, dword [esp + 0x54]
push edi
push 0
call dword [0x44745c]
mov esi, dword [esp + 0x48]
lea eax, [esi + esi]
test esi, esi
jns 0x414fe5
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov ecx, eax
lea eax, [esp + 0x48]
push eax
push esi
mov esi, ecx
push ecx
push ebx
push edi
push 0
call dword [0x44745c]
mov eax, edi
lea edi, [esp + 0x118]
jmp dword [0x441b8c]
push eax
call fcn.00409090
add esp, 4
mov ebx, esi
push 0x80
push 0x60
push 5
push 0
push 0x100002
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.0043ad90
add esp, 0x1c
mov esi, eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x441c14]
jmp dword [0x441c20]
mov dword [esp + 0x30], ebx
push 0
push dword [esp + 0x118]
push dword [esp + 0x3c]
push dword [esp + 0x14]
call fcn.0043b600
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x48], 0x28292e2f
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0xb
ja 0x4150f6
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edi, byte [esp + edx + 0x48]
lea edx, [ecx + 0xfa]
and edx, edi
mov ebx, 5
sub ebx, ecx
add ecx, edi
not edi
or ebx, edi
add ecx, ebx
not ebx
or ebx, edx
sub ecx, ebx
add ecx, 0x77ad25fb
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xb0]
add cl, 0x2a
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x48], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0xc
jb 0x4150a0
mov ecx, dword [0x447460]
test ecx, ecx
je 0x415128
mov edx, dword [esp + 0x48]
xor edi, edi
mov ebx, dword [0x447464]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x415120
inc edi
cmp ecx, edi
jne 0x415110
jmp 0x415128
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x415139
lea edi, [esp + 0x118]
mov ebx, dword [esp + 0x30]
jmp dword [0x441c20]
push eax
push 1
push dword [0x447468]
push ecx
call fcn.00438760
add esp, 0x10
lea edi, [esp + 0x118]
mov ebx, dword [esp + 0x30]
jmp dword [0x441c20]
mov ecx, ebx
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x415160
sub eax, ebx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
jge 0x41517a
mov ecx, 0xffffffff
mov dword [esp + 0x30], ebx
push ecx
call fcn.00409080
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0xb0], 0x939091b4
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb7], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xa
ja 0x415210
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0xb0]
lea edx, [eax - 0x1d776ded]
add eax, 0x13
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0x7b
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xb0], al
mov eax, dword [esp + 0x10]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp eax, 0xb
jb 0x4151c0
mov dword [esp + 0x48], 0x7bc979d6
mov dword [esp + 0x4c], 0x7fdb7df3
mov dword [esp + 0x50], 0x73c571cc
mov dword [esp + 0x54], 0x77d375ca
mov dword [esp + 0x58], 0x4bf449ca
mov dword [esp + 0x5c], 0x4fb34daa
mov dword [esp + 0x60], 0x43c841e9
mov dword [esp + 0x64], 0x47e145e5
mov dword [esp + 0x68], 0x5bfa59a6
mov dword [esp + 0x6c], 0x5fec5dd1
mov dword [esp + 0x70], 0x53e551fd
mov dword [esp + 0x74], 0x57b455e7
mov dword [esp + 0x78], 0x2b8e29a9
mov dword [esp + 0x7c], 0x2fce2dca
mov word [esp + 0x80], 0x212e
mov dword [esp + 0x82], 0
mov dword [esp + 0x86], 0
mov byte [esp + 0x8a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x42
ja 0x415314
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx esi, byte [esp + eax + 0x48]
lea eax, [edx - 0x274129f1]
mov ecx, eax
and ecx, esi
xor eax, esi
mov edi, 0x274129f0
sub edi, edx
lea ebx, [edx + 0xf]
and ebx, esi
or edi, esi
add edi, edx
add edi, ebx
sub eax, edi
lea eax, [eax + ecx*2]
add eax, 0x274129f0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x97
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x43
jb 0x4152c0
movzx ecx, word [esp + 0x48]
mov eax, dword [esp + 0x2c]
test cx, cx
je 0x415341
lea edx, [esp + 0x4a]
mov eax, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x415330
mov word [eax], 0
mov ebx, dword [esp + 0x30]
movzx ecx, word [ebx]
test cx, cx
je 0x415371
lea edx, [ebx + 2]
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 0x415360
mov word [eax], 0
movzx ecx, word [esp + 0xb0]
test cx, cx
je 0x4153a1
lea edx, [esp + 0xb2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x415390
mov word [eax], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0x44
push 0xd3a7a30
push dword [0x447454]
call fcn.0043a440
add esp, 8
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x4c]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esp + 0x4c]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441cc4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb0], 0x28292e2f
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xb
ja 0x415506
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx esi, byte [esp + edx + 0xb0]
lea edx, [ecx + 0xfa]
and edx, esi
mov edi, 5
sub edi, ecx
add ecx, esi
not esi
or edi, esi
add ecx, edi
not edi
or edi, edx
sub ecx, edi
add ecx, 0x77ad25fb
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x2a
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb0], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xc
jb 0x4154b0
mov ecx, dword [0x447460]
test ecx, ecx
je case.0x414809.84
mov edx, dword [esp + 0xb0]
xor esi, esi
mov edi, dword [0x447464]
nop
cmp dword [edi + esi*8], 0x11081610
je 0x415530
inc esi
cmp ecx, esi
jne 0x415520
jmp case.0x414809.84
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x415555
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x38]
lea edi, [esp + 0x118]
jmp dword [ecx*4 + 0x441ccc]
push eax
push 1
push dword [0x447468]
push ecx
call fcn.00438760
add esp, 0x10
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x38]
lea edi, [esp + 0x118]
jmp dword [ecx*4 + 0x441ccc]
xor ecx, ecx
cmp dword [esp + 0x3c], 1
sete cl
mov eax, 1
mov dword [esp + 0x2c], 0
jmp dword [ecx*4 + 0x441c34]
mov word [esp + 0x48], 0x878c
mov byte [esp + 0x4a], 0x14
mov dword [esp + 0x4b], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 9
ja 0x41561e
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add edx, 0xfe97642d
add eax, 0x2d
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 + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xc5
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xa
jb 0x4155d0
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x10]
call fcn.00402710
add esp, 8
mov dword [esp + 0x44], eax
mov word [esp + 0x48], 0xf301
mov byte [esp + 0x4a], 0x62
mov dword [esp + 0x4f], 0
mov dword [esp + 0x4b], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xa
ja 0x4156b6
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx eax, byte [esp + eax + 0x48]
mov edx, ecx
and edx, 0x3e633e70
xor ecx, 0xbe633e70
lea ecx, [ecx + edx*2]
mov edx, eax
not edx
or edx, ecx
not ecx
or ecx, eax
add ecx, edx
mov eax, 0xfffffffe
sub eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0xf0
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0xb
jb 0x415660
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x10]
call fcn.00402710
add esp, 8
mov edx, eax
mov eax, 0xfffffffe
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x4156f9
mov esi, ebx
sar eax, 1
xor ebx, ebx
mov ecx, dword [esp + 0x44]
test ecx, ecx
setne bl
mov dword [esp + 0x3c], edx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0x30], esi
jmp dword [ebx*4 + 0x441c3c]
xor esi, esi
xor ebx, ebx
test edx, edx
setne bl
mov ecx, edx
mov dword [esp + 0x40], ebx
jmp dword [ebx*4 + 0x441c44]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne case.default.0x41573a
sub esi, dword [esp + 0x44]
inc esi
xor ebx, ebx
test edx, edx
setne bl
mov ecx, edx
mov dword [esp + 0x40], ebx
jmp dword [ebx*4 + 0x441c44]
xor ebx, ebx
jmp 0x415763
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne case.0x414809.53
mov ecx, edx
jmp dword [0x441c58]
sub ebx, edx
inc ebx
mov dword [esp + 0x48], 0xbb2fb924
mov dword [esp + 0x4c], 0xbf18bd14
mov dword [esp + 0x50], 0xa30ca112
mov dword [esp + 0x54], 0xa776a577
mov word [esp + 0x58], 0xa9a6
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5d], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x18
ja 0x4157f1
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x48]
lea edi, [ecx + 0xc7]
and edi, edx
add ecx, edx
add edi, edi
sub ecx, edi
add ecx, 0x2c502cc7
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x8f
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x48], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x19
jb 0x4157b0
lea edx, [esp + 0x48]
mov ecx, 4
lea edi, [esp + 0xb0]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x58]
lea edi, [esp + 0xc0]
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
cmp word [esp + ecx + 0xb2], 0
lea ecx, [ecx + 2]
jne 0x415830
sar ecx, 1
add eax, esi
add eax, ebx
lea edx, [eax + ecx]
add ecx, eax
add ecx, 2
lea eax, [edx + edx]
add eax, 4
test ecx, ecx
jns 0x41585b
mov eax, 0xffffffff
push eax
call fcn.00409080
add esp, 4
mov edi, eax
movzx eax, word [esp + 0xb0]
mov dword [esp + 0x2c], edi
test ax, ax
je 0x4158a1
lea ecx, [esp + 0xb2]
mov edi, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415890
mov dword [edi], 0x220020
add edi, 4
mov ecx, dword [esp + 0x30]
movzx eax, word [ecx]
test ax, ax
je 0x4158d3
mov edx, ecx
add ecx, 2
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4158c0
jmp 0x4158d5
mov edx, ecx
lea eax, [edi + 2]
mov dword [esp + 0xc], eax
mov word [edi], 0x22
jmp dword [0x441c5c]
push edx
call fcn.00409090
add esp, 4
mov dword [esp + 0x100], ebx
mov eax, dword [case.0x414809.62]
nop
nop
nop
nop
jmp eax
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0xf4]
jmp dword [eax*4 + 0x441c74]
lea edi, [esp + 0x118]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
jmp dword [eax*4 + 0x441c7c]
mov word [edx], 0x2c
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x415940
lea esi, [edx + 2]
mov dword [esp + 0x48], 0
mov ebx, dword [esp + 0x100]
cmp ebx, 2
jl 0x41599f
test eax, eax
jle 0x41599f
mov edi, ecx
add edi, eax
lea eax, [edx + ebx*2]
mov dword [esp + 0xc], eax
cmp byte [ecx], 0
je 0x41599f
lea eax, [esp + 0x48]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040f840
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0xc]
jae 0x41599f
add ebx, eax
cmp ebx, edi
mov ecx, ebx
jb 0x415970
mov word [esi], 0
xor ebx, ebx
mov dword [esp + 0x3c], 0
mov esi, dword [esp + 0x38]
lea edi, [esp + 0x118]
mov eax, 1
jmp dword [eax*4 + 0x441c84]
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0xc]
mov word [eax], 0x2c
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + eax + 1], 0
lea eax, [eax + 1]
jne 0x4159e0
lea esi, [edi + 4]
mov dword [esp + 0xc], esi
mov dword [esp + 0x48], 0
mov esi, dword [esp + 0x30]
cmp esi, 2
jl 0x415a68
test eax, eax
jle 0x415a68
mov edx, ebx
add edx, eax
lea eax, [edi + esi*2]
add eax, 2
mov dword [esp + 0x30], eax
lea edi, [esp + 0x118]
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x415a6f
mov edi, edx
lea eax, [esp + 0x48]
push eax
push edx
push ebx
call fcn.0040f840
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov edx, dword [esp + 0xc]
mov word [edx], cx
add edx, 2
cmp edx, dword [esp + 0x30]
mov dword [esp + 0xc], edx
jae 0x415a64
add ebx, eax
cmp ebx, edi
mov ecx, dword [esp + 0x3c]
mov edx, edi
lea edi, [esp + 0x118]
jb 0x415a20
jmp 0x415a6f
mov ecx, dword [esp + 0x3c]
lea edi, [esp + 0x118]
mov edx, dword [esp + 0xc]
mov word [edx], 0
mov eax, dword [esp + 0x40]
jmp dword [eax*4 + 0x441c7c]
xor ebx, ebx
mov dword [esp + 0x3c], 0
mov esi, dword [esp + 0x38]
mov eax, 1
jmp dword [eax*4 + 0x441c84]
push eax
call fcn.00436da0
add esp, 4
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x441cd4]
xor eax, eax
cmp dword [esp + 0x2c], 0
sete al
jmp dword [eax*4 + 0x441cdc]
mov eax, dword [esp + 0x104]
jmp dword [eax*4 + 0x441cac]
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0x44
push 0xd3a7a30
push dword [0x447454]
call fcn.0043a440
add esp, 8
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x4c]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x4c]
push ebx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x441cb4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb0], 0x28292e2f
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xb
ja 0x415c36
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx esi, byte [esp + edx + 0xb0]
lea edx, [ecx + 0xfa]
and edx, esi
mov edi, 5
sub edi, ecx
add ecx, esi
not esi
or edi, esi
add ecx, edi
not edi
or edi, edx
sub ecx, edi
add ecx, 0x77ad25fb
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x2a
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb0], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xc
jb 0x415be0
mov ecx, dword [0x447460]
test ecx, ecx
je case.0x414809.80
mov edx, dword [esp + 0xb0]
xor esi, esi
mov edi, dword [0x447464]
nop
cmp dword [edi + esi*8], 0x11081610
je 0x415c60
inc esi
cmp ecx, esi
jne 0x415c50
jmp case.0x414809.80
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x415c85
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x38]
lea edi, [esp + 0x118]
jmp dword [ecx*4 + 0x441ccc]
push eax
push 1
push dword [0x447468]
push ecx
call fcn.00438760
add esp, 0x10
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x38]
lea edi, [esp + 0x118]
jmp dword [ecx*4 + 0x441ccc]
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0xb0], 0xb8797400
mov dword [esp + 0x48], 0x28292e2f
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xb
ja 0x415d4e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x48]
lea ecx, [eax + 0xfa]
and ecx, edx
mov edi, 5
sub edi, eax
add eax, edx
not edx
or edi, edx
add eax, edi
not edi
or edi, ecx
sub eax, edi
add eax, 0x77ad25fb
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x2a
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xc
jb 0x415d00
mov eax, dword [0x447460]
test eax, eax
je 0x415da4
mov ecx, dword [esp + 0x48]
xor edx, edx
mov edi, dword [0x447464]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xb33e16a3
je 0x415d80
inc edx
cmp eax, edx
jne 0x415d70
jmp 0x415da4
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x415da4
lea ecx, [esp + 0xb0]
push ecx
push 0
push esi
push 3
push dword [0x447468]
push eax
call fcn.00438760
add esp, 0x18
mov dword [esp + 0x48], 0x28292e2f
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xb
ja 0x415e1e
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x48]
lea ecx, [eax + 0xfa]
and ecx, edx
mov edi, 5
sub edi, eax
add eax, edx
not edx
or edi, edx
add eax, edi
not edi
or edi, ecx
sub eax, edi
add eax, 0x77ad25fb
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x2a
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xc
jb 0x415dd0
mov eax, dword [0x447460]
test eax, eax
je case.default.0x415e80
mov ecx, dword [esp + 0x48]
xor edx, edx
mov edi, dword [0x447464]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x11081610
je 0x415e50
inc edx
cmp eax, edx
jne 0x415e40
jmp case.default.0x415e80
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je case.default.0x415e80
push esi
push 1
push dword [0x447468]
push eax
call fcn.00438760
add esp, 0x10
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x38]
lea edi, [esp + 0x118]
jmp dword [ecx*4 + 0x441ccc]
mov esi, dword [esp + 0x38]
jmp dword [eax*4 + 0x441c84]
xor eax, eax
mov ecx, dword [esp + 0x3c]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x441c8c]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x441c94]
sete al
movzx eax, al
jmp dword [eax*4 + 0x441c9c]
sete al
movzx eax, al
jmp dword [eax*4 + 0x441ca4]
push 0xa013361e
push dword [0x447454]
call fcn.0043a440
add esp, 8
push 0
push 0
push dword [esp + 0x3c]
push 0x41d650
push 0
push 0
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x441cbc]
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x38]
jmp dword [ecx*4 + 0x441ccc]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x441cd4]
push ebx
call fcn.00409090
add esp, 4
xor eax, eax
cmp dword [esp + 0x2c], 0
sete al
jmp dword [eax*4 + 0x441cdc]
push dword [esp + 0x34]
call fcn.00436da0
add esp, 4
mov dword [esp + 0x34], 0
push dword [esp + 0x34]
call fcn.00436da0
add esp, 4
mov dword [esp + 0x34], 0
jmp dword [0x441c24]
not esi
shr esi, 0x1f
mov dword [esp + 0x2c], 0
xor eax, eax
jmp dword [esi*4 + 0x441c2c]
mov dword [esp + 0x10], 0x63f465b4
mov dword [esp + 0x14], 0x6fbf61ff
mov word [esp + 0x18], 0x6d6e
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 0x41600f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x4620d4b1]
and edx, ecx
add eax, ecx
add eax, 0x4620d4b1
add edx, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x29
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x15
jb 0x415fd0
lea eax, [ebx - 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x416020
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x416053
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 0x416040
add eax, edx
mov word [eax], 0
mov dword [esp + 0x10], 0x63f465b4
mov dword [esp + 0x14], 0x6fbf61ff
mov word [esp + 0x18], 0x6d6e
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 0x4160df
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 + 0x4620d4b1]
and edx, ecx
add eax, ecx
add eax, 0x4620d4b1
add edx, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x29
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x15
jb 0x4160a0
lea eax, [ebx - 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4160f0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x416123
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 0x416110
add eax, edx
mov word [eax], 0
jmp dword [0x441c00]
mov ecx, dword [case.0x4122c1.23]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov al, 1
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret