Function at 0x413576
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x23c
mov eax, dword [0x44f274]
mov dword [esp + 0x3c], 0x51bf4f83
mov dword [esp + 0x40], 0x55b953aa
mov dword [esp + 0x44], 0x59ba57b8
mov dword [esp + 0x48], 0x5d6b5bbb
mov dword [esp + 0x4c], 0x61705f6b
mov dword [esp + 0x50], 0x65426350
mov dword [esp + 0x54], 0x69bf674c
mov dword [esp + 0x58], 0x6d846b83
mov dword [esp + 0x5c], 0x719f6f88
mov dword [esp + 0x60], 0x75877389
mov dword [esp + 0x64], 0x79b87754
mov dword [esp + 0x68], 0x7d5a7bac
mov dword [esp + 0x6c], 0x14e7f4f
mov dword [esp + 0x70], 0x532032e
mov dword [esp + 0x74], 0x9260739
mov dword [esp + 0x78], 0xde10bd1
mov dword [esp + 0x7c], 0x11380fe2
mov dword [esp + 0x80], 0x152f1324
mov dword [esp + 0x84], 0x19ee1734
mov dword [esp + 0x88], 0x1d2e1b2e
mov dword [esp + 0x8c], 0x213e1f37
mov dword [esp + 0x90], 0x25d223e3
mov dword [esp + 0x94], 0x29ca27d4
mov dword [esp + 0x98], 0x2df32bcf
mov dword [esp + 0x9c], 0x31cc2fcb
mov dword [esp + 0xa0], 0x35d933fd
mov dword [esp + 0xa4], 0x390737c0
mov dword [esp + 0xa8], 0x3d0f3b0f
mov dword [esp + 0xac], 0xc1103f05
mov dword [esp + 0xb0], 0xc5f4c3f5
mov dword [esp + 0xb4], 0xc9eec7e4
mov dword [esp + 0xb8], 0xcd02cb05
mov dword [esp + 0xbc], 0xd101cf18
mov dword [esp + 0xc0], 0xd5fed31c
mov dword [esp + 0xc4], 0xd93ad7f4
mov dword [esp + 0xc8], 0xdd37db33
mov dword [esp + 0xcc], 0xe1fedf3b
mov dword [esp + 0xd0], 0xe505e329
mov dword [esp + 0xd4], 0xe90be701
mov dword [esp + 0xd8], 0xedc1eb19
mov dword [esp + 0xdc], 0xf12befcc
mov dword [esp + 0xe0], 0xf500f318
mov dword [esp + 0xe4], 0xf919f705
mov dword [esp + 0xe8], 0xfdcbfb1f
mov dword [esp + 0xec], 0x81cdffcf
mov dword [esp + 0xf0], 0x85ac83bb
mov dword [esp + 0xf4], 0x89a887b4
mov dword [esp + 0xf8], 0x8da48bb8
mov dword [esp + 0xfc], 0x91ae8fbc
mov dword [esp + 0x100], 0x95719345
mov dword [esp + 0x104], 0x99759772
mov dword [esp + 0x108], 0x9d719b6a
mov dword [esp + 0x10c], 0xa1a99fad
mov dword [esp + 0x110], 0xa59ba395
mov dword [esp + 0x114], 0xa993a78a
mov dword [esp + 0x118], 0xadaaab9e
mov byte [esp + 0x11e], 0
mov word [esp + 0x11c], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xe2
ja 0x410933
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x3c]
mov esi, ecx
xor esi, 0x72a0e0d
and ecx, 0x72a0e0d
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0xbf
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x3c], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xe3
jb 0x4108f0
lea ebx, [esp + 0x3c]
push 0
push 0
push 0
push 0
push ebx
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x449fd0]
xor ebx, ebx
jmp 0x410f8c
mov eax, dword [0x44f278]
mov dword [esp + 0x3c], 0x939290db
mov word [esp + 0x40], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 5
ja 0x4109c7
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x3c]
mov edi, ecx
xor edi, 0x5cd629dc
and ecx, 0xdcd629dc
lea ecx, [edi + ecx*2]
lea edi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esp + 8], edi
mov ecx, dword [esp + 8]
add cl, 0xb4
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x3c], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 6
jb 0x410980
movzx ecx, word [esp + 0x3c]
push 0
push ecx
push 0x44f2a8
push esi
call eax
xor ecx, ecx
mov dword [esp + 0x38], eax
test eax, eax
setne cl
jmp dword [ecx*4 + 0x449fd8]
xor ebx, ebx
jmp 0x410f85
mov eax, dword [0x44f27c]
mov dword [esp + 8], 0x49ca4b4c
mov byte [esp + 0xc], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 4
ja 0x410a61
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
add ecx, 0x54f1b173
xor ecx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
mov edx, ecx
not edx
and edx, 0x3f
and ecx, 0xc0
sub ecx, edx
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 5
jb 0x410a20
mov edx, dword [esp + 8]
mov dword [esp + 0x3c], 0x41b747b4
mov dword [esp + 0x40], 0x4dbe43bd
mov dword [esp + 0x44], 0x4f4c
mov dword [esp], 0
mov edi, dword [esp]
cmp edi, 0xb
ja 0x410ad2
nop
nop
nop
nop
mov edi, dword [esp]
mov ebp, dword [esp]
movzx ebp, byte [esp + ebp + 0x3c]
mov ecx, edi
xor ecx, 0x6710ae11
and edi, 0xe710ae11
lea ecx, [ecx + edi*2]
lea edi, [ecx + ebp]
and ecx, ebp
add ecx, ecx
sub edi, ecx
mov dword [esp + 4], edi
mov ecx, dword [esp + 4]
add cl, 0xab
mov edi, dword [esp]
mov byte [esp + edi + 0x3c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xc
jb 0x410a90
push edx
push 0
push 0
push 0
push dword [esp + 0x260]
push ebx
push dword [esp + 0x50]
call eax
mov ebp, eax
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x449fe0]
xor ebx, ebx
jmp 0x410f7b
mov edi, dword [esp + 0x268]
xor eax, eax
test edi, edi
setg al
jmp dword [eax*4 + 0x449fe8]
jmp dword [0x449ff4]
push edi
push edi
push edi
push edi
push ebp
call dword [0x44f284]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
push edi
push edi
push edi
push ebp
call dword [0x44f284]
jmp dword [0x449ff8]
movzx eax, byte [0x44f3ac]
jmp dword [eax*4 + 0x44a000]
jmp dword [0x44a024]
xor eax, eax
mov edx, dword [esp + 0x254]
mov ecx, edx
neg ecx
sbb eax, eax
push 0
mov edi, dword [esp + 0x268]
push edi
push dword [esp + 0x264]
push dword [esp + 0x264]
push eax
push edx
push ebp
call dword [0x44f28c]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a028]
xor ebx, ebx
jmp case.0x41094b.24
jmp dword [0x44a00c]
mov dword [esp + 8], 0xc3adc183
mov dword [esp + 0xc], 0xc7adc5ab
mov dword [esp + 0x10], 0xcbafc9a1
mov dword [esp + 0x14], 0xcfeecd96
mov dword [esp + 0x18], 0xf38df18f
mov dword [esp + 0x1c], 0xf790f597
mov dword [esp + 0x20], 0xfb97f987
mov dword [esp + 0x24], 0xff81fd6b
mov dword [esp + 0x28], 0xe37be182
mov dword [esp + 0x2c], 0xe7bbe574
mov word [esp + 0x30], 0xe9e8
mov dword [esp + 0x32], 0
mov byte [esp + 0x36], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2e
ja 0x410c6f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx eax, byte [esp + eax + 8]
mov edx, ecx
xor edx, 0x646b49d0
and ecx, 0xe46b49d0
lea edx, [edx + ecx*2]
mov ecx, edx
and ecx, eax
add eax, edx
sub eax, ecx
mov edx, 0xca2e8aff
sub edx, eax
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 4], ecx
mov eax, dword [esp + 4]
add al, 0xf0
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2f
jb 0x410c20
movzx ecx, word [esp + 8]
lea eax, [esp + 0x3c]
test cx, cx
je 0x410ca1
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x410c90
mov word [eax], 0
movzx ecx, word [0x44f3ae]
test cx, cx
je 0x410cd5
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edx + 0x44f3b0]
add edx, 2
test cx, cx
jne 0x410cc0
add eax, edx
mov word [eax], 0
mov eax, dword [0x44f288]
mov dword [esp + 8], 0xf7d6c9c8
mov byte [esp + 0xc], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x410d47
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
mov edi, ecx
xor edi, 0x5cf8154e
and ecx, 0xdcf8154e
lea ecx, [edi + ecx*2]
xor ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
mov edx, ecx
not edx
and edx, 0x86
and ecx, 0x79
sub ecx, edx
mov edx, dword [esp]
mov byte [esp + edx + 8], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x410d00
lea ecx, [esp + 0x3c]
push dword [esp + 8]
push 0xffffffffffffffff
push ecx
push ebp
call eax
jmp case.0x410af0.11
lea ecx, [esp + 0x3c]
push dword [esp + 8]
push 0xffffffffffffffff
push ecx
push ebp
call eax
jmp dword [0x44a010]
mov dword [esp + 8], 0xc3adc183
mov dword [esp + 0xc], 0xc7adc5ab
mov dword [esp + 0x10], 0xcbafc9a1
mov dword [esp + 0x14], 0xcfeecd96
mov dword [esp + 0x18], 0xf38df18f
mov dword [esp + 0x1c], 0xf790f597
mov dword [esp + 0x20], 0xfb97f987
mov dword [esp + 0x24], 0xff81fd6b
mov dword [esp + 0x28], 0xe37be182
mov dword [esp + 0x2c], 0xe7bbe574
mov word [esp + 0x30], 0xe9e8
mov dword [esp + 0x32], 0
mov byte [esp + 0x36], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2e
ja 0x410e3f
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx eax, byte [esp + eax + 8]
mov edx, ecx
xor edx, 0x646b49d0
and ecx, 0xe46b49d0
lea edx, [edx + ecx*2]
mov ecx, edx
and ecx, eax
add eax, edx
sub eax, ecx
mov edx, 0xca2e8aff
sub edx, eax
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 4], ecx
mov eax, dword [esp + 4]
add al, 0xf0
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2f
jb 0x410df0
movzx ecx, word [esp + 8]
mov eax, ebx
test cx, cx
je 0x410e71
lea edx, [esp + 0xa]
lea eax, [esp + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x410e60
mov word [eax], 0
movzx ecx, word [0x44f3ae]
test cx, cx
je 0x410ea5
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edx + 0x44f3b0]
add edx, 2
test cx, cx
jne 0x410e90
add eax, edx
mov word [eax], 0
mov eax, dword [0x44f288]
mov dword [esp + 8], 0xf7d6c9c8
mov byte [esp + 0xc], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x410d60
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
mov edi, ecx
xor edi, 0x5cf8154e
and ecx, 0xdcf8154e
lea ecx, [edi + ecx*2]
xor ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
mov edx, ecx
not edx
and edx, 0x86
and ecx, 0x79
sub ecx, edx
mov edx, dword [esp]
mov byte [esp + edx + 8], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x410ed0
jmp 0x410d60
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x3c]
push eax
push edi
push dword [esp + 0x268]
push ebp
call dword [0x44f29c]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x44a030]
push 0
push ebp
call dword [0x44f290]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x44a038]
mov eax, dword [case.0x41094b.24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov bl, 1
jmp eax
push ebp
call dword [0x44f2a0]
push dword [esp + 0x38]
call dword [0x44f2a0]
push esi
call dword [0x44f2a0]
mov eax, ebx
add esp, 0x23c
pop esi
pop edi
pop ebx
pop ebp
ret
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
shr eax, 0x1f
jmp dword [eax*4 + 0x44a6f8]
push 0x44f248
call fcn.004396e0
add esp, 4
mov ecx, dword [str.7567fff5468f5b682780aea4c2eb6266]
mov dword [esp + 0x128], 0xb7731fa2
mov byte [esp + 0x12c], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 4
ja 0x4111e2
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x20]
movzx edx, byte [esp + edx + 0x128]
mov esi, eax
xor esi, 0x5af5765e
and eax, 0xdaf5765e
lea eax, [esi + eax*2]
mov esi, eax
and esi, edx
add eax, edx
add esi, esi
sub eax, esi
mov dword [esp + 0x228], eax
mov eax, dword [esp + 0x228]
add al, 0x2a
mov edx, dword [esp + 0x20]
mov byte [esp + edx + 0x128], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 5
jb 0x411190
mov edx, dword [str.hRjzG3__GAS]
mov dword [esp + 0x228], 0x9ed6a2a1
mov dword [esp + 0x22c], 0xaea5a0d6
mov dword [esp + 0x230], 0xa6b5acde
mov dword [esp + 0x234], 0xaedddea9
mov dword [esp + 0x238], 0xe5549497
mov dword [esp + 0x23c], 0xa3abe791
mov dword [esp + 0x240], 0x975ca956
mov dword [esp + 0x244], 0x7fa39995
mov word [esp + 0x248], 0
mov byte [esp + 0x24a], 0
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 0x22
ja 0x4112d7
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
movzx eax, byte [esp + eax + 0x228]
mov edi, esi
not edi
or edi, 0x7435c210
add edi, esi
xor esi, 0xf435c210
lea esi, [esi + edi*2]
add esi, 2
xor esi, eax
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x20]
mov esi, eax
not esi
and esi, 0x50
and eax, 0xaf
sub eax, esi
mov esi, dword [esp + 0xc0]
mov byte [esp + esi + 0x228], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 0x23
jb 0x411270
movzx ebx, byte [esp + 0x228]
lea eax, [esp + 0xa90]
test bl, bl
je 0x41130b
lea esi, [esp + 0x229]
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 0x411300
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x41132b
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 0x411320
mov byte [eax], 0
movzx edx, byte [esp + 0x128]
test dl, dl
je 0x41135b
lea esi, [esp + 0x129]
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 0x411350
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x41137b
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 0x411370
mov byte [eax], 0
mov dword [esp + 0x228], 0x7fed793f
mov dword [esp + 0x22c], 0x63f67dee
mov dword [esp + 0x230], 0x67f46105
mov dword [esp + 0x234], 0x6b4765f0
mov dword [esp + 0x238], 0x6ff7691c
mov dword [esp + 0x23c], 0x93f76dfc
mov dword [esp + 0x240], 0x97b691ce
mov dword [esp + 0x244], 0x9b0a95f5
mov dword [esp + 0x248], 0x9ff29908
mov dword [esp + 0x24c], 0x83e59df5
mov dword [esp + 0x250], 0x871281e1
mov dword [esp + 0x254], 0x8b1985ed
mov dword [esp + 0x258], 0x8fdd891a
mov dword [esp + 0x25c], 0xb39f8d14
mov dword [esp + 0x260], 0xb72db12b
mov dword [esp + 0x264], 0xbb97b52f
mov dword [esp + 0x268], 0xbf2db9d2
mov dword [esp + 0x26c], 0xa3cfbd2a
mov dword [esp + 0x270], 0xa733a18d
mov dword [esp + 0x274], 0xabc6a532
mov dword [esp + 0x278], 0xaf3ca9cd
mov dword [esp + 0x27c], 0xd341adcb
mov dword [esp + 0x280], 0xd7b3d1b4
mov dword [esp + 0x284], 0xdbd7d5b0
mov dword [esp + 0x288], 0xdfded9d6
mov dword [esp + 0x28c], 0
lea ecx, [esp + 0xa90]
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x20]
cmp edx, 0x67
ja 0x411520
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
movzx edi, byte [esp + esi + 0x228]
lea esi, [edx + edi]
add esi, 0xc49d30ea
add edx, 0xc49d30ea
and edx, edi
mov edi, esi
xor edi, edx
mov ebx, edx
not ebx
and esi, ebx
add esi, esi
sub esi, edi
xor edx, esi
and esi, ebx
add esi, esi
sub esi, edx
mov dword [esp + 0x128], esi
mov edx, dword [esp + 0x128]
add dl, 0x6e
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x228], dl
inc dword [esp + 0x20]
mov edx, dword [esp + 0x20]
cmp edx, 0x68
jb 0x4114c0
sub eax, ecx
mov dword [esp + 0x128], 0x39953b6d
mov dword [esp + 0x12c], 0x25b127a8
mov word [esp + 0x130], 0x2324
mov dword [esp + 0x132], 0
mov dword [esp + 0xc0], 0
mov edx, dword [esp + 0xc0]
cmp edx, 0xd
ja 0x4115c5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc0]
movzx esi, byte [esp + esi + 0x128]
mov edi, edx
xor edi, 0x14aa308b
and edx, 0x14aa308b
lea edx, [edi + edx*2]
xor edx, esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
add dl, 0x49
mov esi, dword [esp + 0xc0]
mov byte [esp + esi + 0x128], dl
inc dword [esp + 0xc0]
mov edx, dword [esp + 0xc0]
cmp edx, 0xe
jb 0x411570
lea edx, [esp + 0xbc]
lea esi, [esp + 0xb8]
lea edi, [esp + 0x228]
lea ebx, [esp + 0x128]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x44f2a8
call fcn.0040fe00
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44a700]
xor esi, esi
xor eax, eax
test esi, 0
sete al
jmp dword [eax*4 + 0x44a708]
jmp dword [0x44a714]
call dword [sym.imp.ole32.dll_CoUninitialize]
nop
nop
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp dword [0x44a718]
jmp case.0x41094b.32
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
je 0x411660
cmp edx, 0x2e
jne 0x411661
dec eax
movzx ecx, byte [edi + ecx - 2]
cmp ecx, 0x3d
je 0x411670
cmp ecx, 0x2e
jne 0x411671
dec eax
push eax
call fcn.0040c640
add esp, 4
mov esi, eax
push eax
push edi
call fcn.0043a320
add esp, 8
push dword [esp + 0xb8]
call fcn.0043d5f0
add esp, 4
xor eax, eax
test esi, esi
sete al
lea edi, [esp + 0x228]
jmp dword [eax*4 + 0x44a708]
push esi
call fcn.00403c50
add esp, 4
mov dword [esp + 0xa0], eax
jmp dword [0x44a720]
push esi
call fcn.0040c650
add esp, 4
push dword [esp + 0xa0]
call fcn.004045a0
add esp, 4
mov dword [esp + 0xb0], eax
mov word [esp + 0x228], 0xa4be
mov byte [esp + 0x22a], 0x32
mov dword [esp + 0x22b], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 6
ja 0x411778
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x228]
mov edx, eax
not edx
or edx, 0x3a60224c
add edx, eax
xor eax, 0xba60224c
lea esi, [eax + edx*2]
lea eax, [eax + edx*2]
add eax, 2
lea edx, [ecx + esi]
add edx, 2
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x128]
add al, 0x84
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x228], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 7
jb 0x411710
push edi
mov esi, dword [esp + 0xb4]
push esi
call fcn.00404620
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x44a728]
call fcn.00438d40
movzx eax, al
jmp dword [eax*4 + 0x44a730]
mov word [esp + 0x228], 0xad91
mov byte [esp + 0x22a], 0x32
mov word [esp + 0x22b], 0
mov byte [esp + 0x22d], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 5
ja 0x41183b
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x228]
mov edx, eax
xor edx, 0xc914e20c
and eax, 0xc914e20c
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x128], edx
mov eax, dword [esp + 0x128]
mov ecx, eax
xor ecx, 0x3c
and eax, 0x43
add eax, eax
sub eax, ecx
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x228], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 6
jb 0x4117e0
push edi
push esi
call fcn.00404620
add esp, 8
mov dword [esp + 0xac], eax
mov word [esp + 0x228], 0x90a1
mov byte [esp + 0x22a], 0x3a
mov dword [esp + 0x22b], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 6
ja 0x4118db
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x228]
mov edx, eax
xor edx, 0x86421cb
and eax, 0x86421cb
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x128]
add al, 9
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x228], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 7
jb 0x411880
push edi
push esi
call fcn.00404620
add esp, 8
mov dword [esp + 0x228], 0xd9a3bda0
mov byte [esp + 0x22c], 0
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x20]
cmp ecx, 4
ja 0x411965
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x228]
lea edi, [edx + edx]
and edi, 0xb9bd029e
sub edx, edi
add edx, 0x5cde814f
mov esi, edx
and esi, edi
xor edx, edi
lea edx, [edx + esi*2]
xor edx, ecx
mov dword [esp + 0x128], edx
mov ecx, dword [esp + 0x128]
add cl, 0x75
mov edx, dword [esp + 0x20]
mov byte [esp + edx + 0x228], cl
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
cmp ecx, 5
jb 0x411910
xor ecx, ecx
test eax, eax
setg cl
mov edi, ecx
lea eax, [esp + 0x228]
push eax
mov esi, dword [esp + 0xb4]
push esi
call fcn.00404620
add esp, 8
mov dword [esp + 0xa8], eax
push esi
call fcn.00412aa0
add esp, 4
push dword [esp + 0xa0]
call fcn.00404810
add esp, 4
lea esi, [esp + 0xc0]
mov ecx, esi
push 1
call fcn.0040cf70
push esi
call fcn.00425220
add esp, 4
mov ecx, esi
call fcn.0040d970
lea esi, [esp + 0xc48]
mov ecx, esi
push 3
call fcn.0040cf70
push esi
call fcn.004259b0
add esp, 4
mov ecx, esi
call fcn.0040d970
lea esi, [esp + 0xbe0]
mov ecx, esi
push 1
call fcn.0040cf70
push esi
call fcn.00425c90
add esp, 4
mov ecx, esi
call fcn.0040d970
lea esi, [esp + 0xb78]
mov ecx, esi
push 1
call fcn.0040cf70
push esi
call fcn.00427be0
add esp, 4
push esi
call fcn.004284b0
add esp, 4
push esi
call fcn.00428960
add esp, 4
push esi
call fcn.0042b910
add esp, 4
mov ecx, esi
call fcn.0040d970
lea esi, [esp + 0xb10]
mov ecx, esi
push 1
call fcn.0040cf70
push esi
call fcn.0042a8a0
add esp, 4
mov ecx, esi
call fcn.0040d970
lea esi, [esp + 0xa28]
mov ecx, esi
push 1
call fcn.0040cf70
push esi
call fcn.0042d360
add esp, 4
push esi
call fcn.004341e0
add esp, 4
jmp dword [edi*4 + 0x44a738]
jmp dword [0x44a740]
push esi
call fcn.00434360
add esp, 4
jmp dword [0x44a740]
lea ecx, [esp + 0xa28]
call fcn.0040d970
call dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [esp + 0x20], 0xc6f3c38e
mov word [esp + 0x24], 0xaccc
mov byte [esp + 0x26], 0x6e
mov dword [esp + 0x27], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0xa
ja 0x411b35
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x20]
mov edx, eax
xor edx, 0x59ebee17
and eax, 0xd9ebee17
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
not ecx
and ecx, eax
add ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 0x228], eax
mov eax, dword [esp + 0x228]
add al, 0x8d
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0xb
jb 0x411ae0
mov eax, dword [str.7567fff5468f5b682780aea4c2eb6266]
mov dword [esp + 0xc], 0x3fe397d2
mov byte [esp + 0x10], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x411bb9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
mov esi, ecx
xor esi, 0xc8f56b4a
and ecx, 0xc8f56b4a
lea esi, [esi + ecx*2]
lea ecx, [esi + edx]
mov edi, edx
not edi
or edi, esi
add edx, edi
inc edx
sub ecx, edx
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
mov dword [esp + 0x228], edx
mov ecx, dword [esp + 0x228]
add cl, 0x8e
mov edx, dword [esp]
mov byte [esp + edx + 0xc], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x411b60
mov ecx, dword [str.hRjzG3__GAS]
mov dword [esp + 0x228], 0x7a2e5e63
mov dword [esp + 0x22c], 0x5c2a2421
mov dword [esp + 0x230], 0x2427282f
mov dword [esp + 0x234], 0x6f2d2e57
mov dword [esp + 0x238], 0x6a3c303e
mov dword [esp + 0x23c], 0x777e7d7c
mov dword [esp + 0x240], 0x62463c30
mov byte [esp + 0x244], 0xa0
mov dword [esp + 0x245], 0
mov dword [esp + 0x248], 0
mov dword [esp + 8], 0
mov edx, dword [esp + 8]
cmp edx, 0x23
ja 0x411c84
nop
nop
nop
nop
nop
mov edx, dword [esp + 8]
mov esi, dword [esp + 8]
movzx esi, byte [esp + esi + 0x228]
mov edi, edx
xor edi, 0xe8dd2cdf
and edx, 0xe8dd2cdf
lea edx, [edi + edx*2]
xor edx, esi
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0xa5
mov esi, dword [esp + 8]
mov byte [esp + esi + 0x228], dl
inc dword [esp + 8]
mov edx, dword [esp + 8]
cmp edx, 0x24
jb 0x411c40
movzx edx, byte [esp + 0x228]
test dl, dl
je 0x411cab
lea ebx, [esp + 0x128]
lea esi, [esp + 0x229]
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x411ca0
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
je 0x411ccb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x411cc0
mov byte [ebx], 0
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x411ceb
lea edx, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x411ce0
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x411d0b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x411d00
mov byte [ebx], 0
movzx eax, byte [esp + 0x20]
test al, al
je 0x411d2b
lea ecx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x411d20
mov byte [ebx], 0
movzx eax, byte [0x44f248]
test al, al
je 0x411d51
xor ecx, ecx
nop
nop
nop
nop
nop
mov byte [ebx + ecx], al
movzx eax, byte [ecx + 0x44f249]
inc ecx
test al, al
jne 0x411d40
add ebx, ecx
mov byte [ebx], 0
mov dword [esp + 0x228], 0xe117e739
mov dword [esp + 0x22c], 0xfd6ee316
mov dword [esp + 0x230], 0xf908ff03
mov dword [esp + 0x234], 0xf5cdfb74
mov dword [esp + 0x238], 0xf17df718
mov dword [esp + 0x23c], 0x8d0df300
mov dword [esp + 0x240], 0x89ae8f46
mov dword [esp + 0x244], 0x857a8b6b
mov dword [esp + 0x248], 0x81728774
mov dword [esp + 0x24c], 0x9d7f837b
mov dword [esp + 0x250], 0x99129f7f
mov dword [esp + 0x254], 0x956b9b63
mov dword [esp + 0x258], 0x91a79762
mov dword [esp + 0x25c], 0xada59318
mov dword [esp + 0x260], 0xa927af25
mov dword [esp + 0x264], 0xa59dab21
mov dword [esp + 0x268], 0xa157a75a
mov dword [esp + 0x26c], 0xbd55a352
mov dword [esp + 0x270], 0xb931bf8b
mov dword [esp + 0x274], 0xb54ebb4a
mov dword [esp + 0x278], 0xb140b74b
mov dword [esp + 0x27c], 0x4d43b34d
mov dword [esp + 0x280], 0x49b14fb0
mov dword [esp + 0x284], 0x455d4bb4
mov dword [esp + 0x288], 0x4146475e
mov byte [esp + 0x28e], 0
mov word [esp + 0x28c], 0
lea eax, [esp + 0x128]
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x66
ja 0x411ef0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x228]
mov esi, ecx
xor esi, 0x33e5d429
mov edi, ecx
xor edi, 0x4c1a2bd6
or ecx, 0x33e5d429
and ecx, edi
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
add cl, 0x33
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x228], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x67
jb 0x411ea0
sub ebx, eax
mov dword [esp + 0x20], 0x7f1f792b
mov dword [esp + 0x24], 0x630b7dec
mov word [esp + 0x28], 0x6160
mov dword [esp + 0x2a], 0
mov word [esp + 0x2e], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xf
ja 0x411f6b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
mov esi, ecx
xor esi, 0xd58f38ea
and ecx, 0xd58f38ea
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x6e
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x10
jb 0x411f30
lea ecx, [esp + 0xb4]
lea edx, [esp + 0xa4]
lea esi, [esp + 0x20]
push ecx
push edx
push ebx
push eax
lea eax, [esp + 0x238]
push eax
push esi
push 0x44f2a8
call fcn.0040fe00
add esp, 0x1c
jmp case.0x411a82.2
lea ecx, [esp + 0x128]
sub eax, ecx
lea edx, [esp + 0xb4]
lea esi, [esp + 0xa4]
lea ebx, [esp + 0x20]
push edx
push esi
push eax
push ecx
lea edi, [esp + 0x238]
push edi
push ebx
push 0x44f2a8
call fcn.0040fe00
add esp, 0x1c
jmp dword [0x44a748]
lea ecx, [esp + 0xa28]
call fcn.0040d970
call dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [esp + 0x20], 0xc6f3c38e
mov word [esp + 0x24], 0xaccc
mov byte [esp + 0x26], 0x6e
mov dword [esp + 0x27], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0xa
ja 0x412075
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x20]
mov edx, eax
xor edx, 0x59ebee17
and eax, 0xd9ebee17
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
not ecx
and ecx, eax
add ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 0x228], eax
mov eax, dword [esp + 0x228]
add al, 0x8d
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0xb
jb 0x412020
mov ecx, dword [str.7567fff5468f5b682780aea4c2eb6266]
mov dword [esp + 0xc], 0x3fe397d2
mov byte [esp + 0x10], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x4120f7
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
mov esi, eax
xor esi, 0xc8f56b4a
and eax, 0xc8f56b4a
lea esi, [esi + eax*2]
lea eax, [esi + edx]
mov edi, edx
not edi
or edi, esi
add edx, edi
inc edx
sub eax, edx
mov esi, eax
not esi
and esi, edx
not edx
and edx, eax
sub edx, esi
mov dword [esp + 0x228], edx
mov eax, dword [esp + 0x228]
add al, 0x8e
mov edx, dword [esp]
mov byte [esp + edx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x4120a0
lea eax, [esp + 0x245]
mov edx, dword [str.hRjzG3__GAS]
mov dword [esp + 0x228], 0x7a2e5e63
mov dword [esp + 0x22c], 0x5c2a2421
mov dword [esp + 0x230], 0x2427282f
mov dword [esp + 0x234], 0x6f2d2e57
mov dword [esp + 0x238], 0x6a3c303e
mov dword [esp + 0x23c], 0x777e7d7c
mov dword [esp + 0x240], 0x62463c30
mov byte [esp + 0x244], 0xa0
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x23
ja 0x4121c2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov esi, dword [esp + 8]
movzx esi, byte [esp + esi + 0x228]
mov edi, eax
xor edi, 0xe8dd2cdf
and eax, 0xe8dd2cdf
lea eax, [edi + eax*2]
xor eax, esi
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xa5
mov esi, dword [esp + 8]
mov byte [esp + esi + 0x228], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x24
jb 0x412180
movzx ebx, byte [esp + 0x228]
test bl, bl
je 0x4121f0
lea esi, [esp + 0x229]
lea eax, [esp + 0x128]
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x4121e0
jmp 0x4121f7
lea eax, [esp + 0x128]
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x41221b
inc edx
nop
nop
nop
nop
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 0x412210
mov byte [eax], 0
movzx edx, byte [esp + 0xc]
test dl, dl
je 0x41223b
lea esi, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x412230
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x41225b
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 0x412250
mov byte [eax], 0
movzx ecx, byte [esp + 0x20]
test cl, cl
je 0x41227b
lea edx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x412270
mov byte [eax], 0
movzx ecx, byte [0x44f248]
test cl, cl
je 0x4122a1
xor edx, edx
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [edx + 0x44f249]
inc edx
test cl, cl
jne 0x412290
add eax, edx
lea ecx, [esp + 0x28c]
mov byte [eax], 0
mov dword [esp + 0x228], 0xe117e739
mov dword [esp + 0x22c], 0xfd6ee316
mov dword [esp + 0x230], 0xf908ff03
mov dword [esp + 0x234], 0xf5cdfb74
mov dword [esp + 0x238], 0xf17df718
mov dword [esp + 0x23c], 0x8d0df300
mov dword [esp + 0x240], 0x89ae8f46
mov dword [esp + 0x244], 0x857a8b6b
mov dword [esp + 0x248], 0x81728774
mov dword [esp + 0x24c], 0x9d7f837b
mov dword [esp + 0x250], 0x99129f7f
mov dword [esp + 0x254], 0x956b9b63
mov dword [esp + 0x258], 0x91a79762
mov dword [esp + 0x25c], 0xada59318
mov dword [esp + 0x260], 0xa927af25
mov dword [esp + 0x264], 0xa59dab21
mov dword [esp + 0x268], 0xa157a75a
mov dword [esp + 0x26c], 0xbd55a352
mov dword [esp + 0x270], 0xb931bf8b
mov dword [esp + 0x274], 0xb54ebb4a
mov dword [esp + 0x278], 0xb140b74b
mov dword [esp + 0x27c], 0x4d43b34d
mov dword [esp + 0x280], 0x49b14fb0
mov dword [esp + 0x284], 0x455d4bb4
mov dword [esp + 0x288], 0x4146475e
mov byte [ecx + 2], 0
mov word [ecx], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x66
ja 0x412430
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x228]
mov esi, ecx
xor esi, 0x33e5d429
mov edi, ecx
xor edi, 0x4c1a2bd6
or ecx, 0x33e5d429
and ecx, edi
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
add cl, 0x33
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x228], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x67
jb 0x4123e0
lea ecx, [esp + 0x2a]
mov dword [esp + 0x20], 0x7f1f792b
mov dword [esp + 0x24], 0x630b7dec
mov word [esp + 0x28], 0x6160
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xf
ja 0x411fa0
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
mov esi, ecx
xor esi, 0xd58f38ea
and ecx, 0xd58f38ea
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x6e
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x10
jb 0x412470
jmp 0x411fa0
movzx eax, al
jmp dword [eax*4 + 0x44a750]
mov ecx, dword [esp + 0xb4]
mov edi, dword [esp + 0xa4]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
je 0x4124dd
cmp edx, 0x2e
jne 0x4124de
dec eax
movzx ecx, byte [edi + ecx - 2]
cmp ecx, 0x3d
je 0x4124ed
cmp ecx, 0x2e
jne 0x4124ee
dec eax
push eax
call fcn.0040c640
add esp, 4
mov esi, eax
push eax
push edi
call fcn.0043a320
add esp, 8
push dword [esp + 0xa4]
call fcn.0043d5f0
add esp, 4
push esi
call fcn.00403c50
add esp, 4
mov edi, eax
jmp dword [0x44a758]
jmp dword [0x44a764]
push esi
call fcn.0040c650
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.0040c650
add esp, 4
jmp dword [0x44a76c]
push edi
call fcn.004163a0
add esp, 4
xor eax, eax
test edi, edi
setne al
mov ecx, edi
lea edi, [esp + 0x228]
jmp dword [eax*4 + 0x44a770]
xor eax, eax
cmp dword [esp + 0xa8], 0
setg al
jmp dword [eax*4 + 0x44a778]
xor eax, eax
cmp dword [esp + 0xac], 0
setg al
jmp dword [eax*4 + 0x44a780]
push dword [esp + 0xa0]
call fcn.00404810
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push ecx
call fcn.00404810
add esp, 4
xor eax, eax
cmp dword [esp + 0xa8], 0
setg al
jmp dword [eax*4 + 0x44a778]
lea ecx, [esp + 0x228]
push 1
call fcn.0040cf70
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x44f5b1], 0
lea eax, [eax + 1]
jne 0x4125f0
mov dword [esp + 0x20], 0xb6404464
mov dword [esp + 0x24], 0xafb27b43
mov dword [esp + 0x28], 0x59cc
mov byte [esp + 0x2c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xc
ja 0x412680
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x20]
lea esi, [edx + edx]
and esi, 0x94e2a270
mov edi, edx
sub edi, esi
mov esi, edx
xor esi, 0x358eaec7
or edx, 0x4a715138
and edx, esi
lea edx, [edi + edx*2]
add edx, 0x4a715138
xor edx, ecx
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xc]
add cl, 0xe8
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xd
jb 0x412630
lea esi, [esp + 0x228]
mov ecx, esi
push eax
push 0x44f5b0
push ebx
call fcn.0040d160
mov ecx, esi
call fcn.0040d970
mov ecx, esi
call fcn.0040cfb0
xor eax, eax
cmp dword [esp + 0xac], 0
setg al
lea edi, [esp + 0x228]
jmp dword [eax*4 + 0x44a780]
jmp dword [0x44a78c]
push 0
call fcn.00442d40
add esp, 4
nop
nop
push 0
call fcn.00442d40
add esp, 4
jmp dword [0x44a790]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a798]
mov dword [esp + 0x20], 0xe111e719
mov dword [esp + 0x24], 0xfdd4e31c
mov dword [esp + 0x28], 0xf976ff03
mov dword [esp + 0x2c], 0xf5dafb07
mov dword [esp + 0x30], 0xf17bf7d6
mov dword [esp + 0x34], 0x8d11f37c
mov dword [esp + 0x38], 0x89028f7e
mov dword [esp + 0x3c], 0x85bb8ba8
mov dword [esp + 0x40], 0x817d8773
mov dword [esp + 0x44], 0x9da28376
mov dword [esp + 0x48], 0x99699f61
mov dword [esp + 0x4c], 0x95ac9b64
mov dword [esp + 0x50], 0x911e976b
mov dword [esp + 0x54], 0xadb2936f
mov dword [esp + 0x58], 0xa99faf8e
mov dword [esp + 0x5c], 0xa58aab55
mov dword [esp + 0x60], 0xa15da728
mov dword [esp + 0x64], 0xbd5da357
mov dword [esp + 0x68], 0xb931bf4d
mov dword [esp + 0x6c], 0xb59abb34
mov dword [esp + 0x70], 0xb13ab785
mov dword [esp + 0x74], 0x4d7fb390
mov dword [esp + 0x78], 0x497f4f6c
mov dword [esp + 0x7c], 0x45bb4bbe
mov dword [esp + 0x80], 0x41b447a6
mov dword [esp + 0x84], 0x5da143bf
mov dword [esp + 0x88], 0x597e5fa9
mov dword [esp + 0x8c], 0x557a5b66
mov dword [esp + 0x90], 0x51a957a8
mov dword [esp + 0x94], 0x6d7253a4
mov dword [esp + 0x98], 0x696e6f4e
mov byte [esp + 0x9e], 0
mov word [esp + 0x9c], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7e
ja 0x41286b
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + edx]
add esi, 0x8c54aea9
add ecx, 0x8c54aea9
not edx
or ecx, edx
sub edx, ecx
lea ecx, [esi + edx*2]
mov dword [esp + 0x228], ecx
mov ecx, dword [esp + 0x228]
add cl, 0xb3
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x7f
jb 0x412820
movzx ecx, word [esp + 0x20]
test cx, cx
je 0x412891
lea edi, [esp + 0x228]
lea edx, [esp + 0x22]
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x412880
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x4128c1
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x4128b0
mov dword [edi], 0x220022
mov dword [edi + 4], 0x22
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 + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0x44
mov dword [esp + 0x4c], 1
push 0xc9be8534
push dword [0x4505b0]
call fcn.00442e70
add esp, 8
lea ecx, [esp + 0xc]
lea edx, [esp + 0x228]
push ecx
push ebx
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 + 0x44a7a0]
mov eax, dword [esp + 0xc]
mov dword [esp], 0x989b9a9d
mov byte [esp + 4], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
cmp ecx, 4
ja 0x412a08
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
movzx edx, byte [esp + edx]
mov esi, ecx
xor esi, 0xcede9c5b
and ecx, 0xcede9c5b
lea ecx, [esi + ecx*2]
lea esi, [ecx + edx]
and ecx, edx
mov edx, esi
not edx
and edx, ecx
add edx, ecx
not ecx
and ecx, esi
sub ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x39
mov edx, dword [esp + 0x1c]
mov byte [esp + edx], cl
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
cmp ecx, 5
jb 0x4129b9
mov ecx, dword [0x4505bc]
test ecx, ecx
je case.0x4126b7.0
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x4505c0]
cmp dword [edi + esi*8], 0x625b6034
je 0x412a2d
inc esi
cmp ecx, esi
jne 0x412a1d
jmp case.0x4126b7.0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x4126b7.0
push eax
push 1
push dword [0x4505c4]
push ecx
call fcn.004403a0
add esp, 0x10
lea ecx, [esp + 0xa28]
call fcn.0040cfb0
lea ecx, [esp + 0xb10]
call fcn.0040cfb0
lea ecx, [esp + 0xb78]
call fcn.0040cfb0
lea ecx, [esp + 0xbe0]
call fcn.0040cfb0
lea ecx, [esp + 0xc48]
call fcn.0040cfb0
lea ecx, [esp + 0xc0]
call fcn.0040cfb0
mov al, 1
jmp 0x4125ae
int3
mov dword [esp + 0x128], edx
jmp 0x412b7f
mov ecx, esi
call fcn.0040cfb0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x12c]
inc edi
mov edx, dword [esp + 0x128]
push edx
call fcn.004047d0
mov edx, dword [esp + 0x12c]
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x44a7b0]
mov dword [esp + 0x12c], edi
push edi
push edx
call fcn.004047e0
add esp, 8
mov ebx, eax
mov word [esp + 0x98], 0xc758
mov dword [esp + 0x9a], 0
mov byte [esp + 0x9e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x412c24
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0xab4313b1
and eax, 0x2b4313b1
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x8b
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb case.default.0x412c37
push 3
push esi
push ebx
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44a7b8]
mov word [esp + 0x98], 0x9b60
lea eax, [esp + 0x9a]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x412cdb
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x98]
mov edx, ecx
or edx, 0x112dd5a4
mov esi, ecx
not esi
or esi, 0xeed22a5b
and esi, edx
not esi
and ecx, 0xeed22a5b
lea edx, [esi + ecx*2]
lea ecx, [edx + eax]
mov esi, eax
not esi
or esi, edx
add eax, esi
inc eax
sub ecx, eax
mov edx, ecx
xor edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x39
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x412c70
lea esi, [esp + 0x98]
push esi
push ebx
call fcn.00404550
add esp, 8
fnstcw word [esp + 0x10a]
movzx eax, word [esp + 0x10a]
or eax, 0xc00
mov word [esp + 0x122], ax
fldcw word [esp + 0x122]
fistp dword [esp + 0x140]
fldcw word [esp + 0x10a]
mov eax, dword [esp + 0x140]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x44a7c0]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x44a7c8]
sete al
movzx eax, al
jmp dword [eax*4 + 0x44a7d0]
mov dword [esp + 0x18], 0x2b8d
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x412db4
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 0x18]
mov edx, eax
xor edx, 0xd5e15bc7
and eax, 0xd5e15bc7
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0x1d
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x412d70
push 2
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a890]
mov dword [esp + 0x34], 0x1988
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 3
ja case.0x41094b.130
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
movzx edx, byte [esp + eax + 0x34]
add ecx, 0xe960e946
mov eax, ecx
and eax, edx
xor ecx, edx
lea ecx, [ecx + eax*2]
mov edx, ecx
xor edx, eax
add edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xa2
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x34], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 4
jb 0x412df0
push 2
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a898]
mov word [esp + 0x98], 0x49fd
lea eax, [esp + 0x9a]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 6
ja case.0x41094b.135
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
movzx eax, byte [esp + eax + 0x98]
lea edx, [ecx + ecx]
and edx, 0x8bc8ccdc
mov esi, ecx
sub esi, edx
mov edx, ecx
xor edx, 0x3a1b9991
or ecx, 0x45e4666e
and ecx, edx
lea ecx, [esi + ecx*2]
add ecx, 0xc5e4666e
xor ecx, eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 4]
add al, 0xda
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 7
jb 0x412e90
push 5
lea esi, [esp + 0x9c]
push esi
push ebx
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a8a0]
mov dword [esp + 0x100], 0x119a
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 3
ja 0x412f7b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x100]
mov edx, eax
xor edx, 0x9930343c
and eax, 0x1930343c
lea eax, [edx + eax*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, 0xd4
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x100], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 4
jb 0x412f30
push 2
lea eax, [esp + 0x104]
push eax
push ebx
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a8a8]
mov word [esp + 0x48], 0x117c
lea eax, [esp + 0x4a]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 6
ja 0x413016
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
movzx eax, byte [esp + eax + 0x48]
mov edx, ecx
not edx
or edx, 0x17c9f604
add edx, ecx
xor ecx, 0x17c9f604
lea ecx, [ecx + edx*2]
add ecx, 2
xor ecx, eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 4]
add al, 0xec
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 7
jb 0x412fd0
push 3
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a8b0]
jmp case.0x4132b1.1
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x44a7d8]
mov word [esp + 0x98], 0x8130
lea eax, [esp + 0x9a]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x4130dc
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x98]
mov edx, ecx
xor edx, 0xcfd35160
and ecx, 0xcfd35160
lea ecx, [edx + ecx*2]
lea edx, [ecx + eax]
not eax
or ecx, eax
sub eax, ecx
lea eax, [edx + eax*2]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, eax
xor ecx, 0xe0
and eax, 0x1f
add eax, eax
sub eax, ecx
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x413080
push esi
push ebx
call fcn.004044f0
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0x41da
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x41315f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x48]
movzx eax, byte [esp + eax + 4]
mov edx, ecx
xor edx, 0x576c1cf0
and ecx, 0xd76c1cf0
lea ecx, [edx + ecx*2]
lea edx, [ecx + eax]
not eax
or ecx, eax
sub eax, ecx
lea eax, [edx + eax*2]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0x50
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x413110
lea eax, [esp + 4]
push eax
push ebx
call fcn.004044f0
add esp, 8
mov edx, dword [esp + 0x14]
test edx, edx
sete ch
mov dword [esp + 0x1c], eax
test eax, eax
sete cl
or cl, ch
movzx eax, cl
jmp dword [eax*4 + 0x44a960]
mov eax, edx
mov ecx, edx
jmp dword [0x44a968]
mov esi, ecx
jmp 0x415f54
mov word [esp + 0x98], 0x8938
lea eax, [esp + 0x9a]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x413214
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0x49da20a2
and eax, 0xc9da20a2
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xd6
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x4131d0
push esi
push ebx
call fcn.004044f0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x98], 0xb8a
lea eax, [esp + 0x9a]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x413294
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0xe1d1a403
and eax, 0xe1d1a403
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xf1
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb case.default.0x4132b1
push esi
push ebx
call fcn.004044f0
add esp, 8
mov edi, dword [esp + 0x1c]
test edi, edi
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x44a9d8]
mov ecx, edi
mov edx, edi
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x4132c0
mov dword [esp + 0x14], eax
xor ebx, ebx
cmp edi, edx
jbe 0x41330d
cmp byte [edx], 0
je 0x41330d
xor ebx, ebx
mov esi, dword [esp + 0x1c]
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push edi
push esi
call fcn.00410fa0
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x41330d
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4132e0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x41331b
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
jae 0x4136a6
mov ebx, eax
cmp esi, edi
jae 0x4136a6
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x4136a6
lea eax, [esp + 0x98]
push eax
push edi
push esi
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x4136a2
add esi, eax
cmp esi, edi
mov ecx, dword [esp + 0x14]
jb 0x413360
jmp 0x4136a6
sete al
movzx eax, al
jmp dword [eax*4 + 0x44a7e0]
mov dword [esp + 0x34], 0x79c8
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x413425
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 0x34]
mov edx, eax
xor edx, 0x5b976696
and eax, 0xdb976696
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0x12
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 0x34], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x4133d0
push 2
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a7e8]
mov word [esp + 0x98], 0x198d
mov dword [esp + 0x9a], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 5
ja 0x4134b4
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0xe2ad24c6
and eax, 0xe2ad24c6
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x22
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 6
jb 0x413470
push 5
push esi
push ebx
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a7f0]
jmp dword [0x44a7f8]
mov word [esp + 0x48], 0x4bca
lea eax, [esp + 0x4a]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 6
ja 0x413547
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
movzx eax, byte [esp + eax + 0x48]
mov edx, ecx
xor edx, 0x437bfe13
add ecx, ecx
and ecx, 0x86f7fc26
mov esi, ecx
and esi, edx
xor ecx, edx
lea ecx, [ecx + esi*2]
xor ecx, eax
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
add al, 0xa1
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 7
jb 0x413500
push 2
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.00404770
add esp, 0xc
jmp case.0x4134c7.2
push 2
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.00404770
add esp, 0xc
jmp dword [0x44a804]
mov word [esp + 0x48], 0x4bca
lea eax, [esp + 0x4a]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 6
ja 0x413560
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
movzx eax, byte [esp + eax + 0x48]
mov edx, ecx
xor edx, 0x437bfe13
add ecx, ecx
and ecx, 0x86f7fc26
mov esi, ecx
and esi, edx
xor ecx, edx
lea ecx, [ecx + esi*2]
xor ecx, eax
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
add al, 0xa1
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 7
jb 0x4135a0
jmp 0x413560
xor ecx, ecx
test eax, eax
setne cl
lea esi, [esp + 0x98]
jmp dword [ecx*4 + 0x44a808]
mov word [esp + 4], 0x91ec
lea eax, [esp + 6]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 4
ja 0x41366e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 4]
mov edx, eax
xor edx, 0xd2fee1c
and eax, 0xd2fee1c
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x74
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 5
jb 0x413630
push 3
lea eax, [esp + 8]
push eax
push ebx
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44a810]
mov eax, dword [case.0x4132b1.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [esp + 0x14]
mov word [ebx], 0
xor esi, esi
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [ecx + esi], 0
lea esi, [esi + 1]
jne 0x4136c0
lea eax, [edi + 2]
test esi, esi
jns 0x4136d8
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x98], 0
add edi, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x38], eax
cmp eax, edi
mov ecx, dword [esp + 0x14]
jae 0x41375b
lea ebx, [ecx + esi]
dec ebx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
cmp ecx, ebx
jae 0x41375b
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x41375b
lea eax, [esp + 0x98]
push eax
push ebx
push ecx
mov esi, ecx
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov edx, dword [esp + 0x10]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x10], edx
cmp edx, edi
jae 0x41375b
add esi, eax
cmp esi, ebx
mov ecx, esi
jb 0x413720
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov word [esp + 0x98], 0xb7a3
mov byte [esp + 0x9a], 0x4e
mov word [esp + 0x9b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x4137f5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0xb04190d
and eax, 0xb04190d
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
not ecx
and ecx, eax
add ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xbf
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x4137a0
lea esi, [esp + 0x98]
push esi
push dword [ebp + 8]
call fcn.004045c0
add esp, 8
xor ecx, ecx
mov dword [esp + 0x110], eax
test eax, eax
setne cl
xor ebx, ebx
mov dword [esp + 0x3c], 0
jmp dword [ecx*4 + 0x44a9e0]
mov ecx, esi
push 3
call fcn.0040cf70
push dword [esp + 0x3c]
push ebx
push dword [esp + 0x40]
push dword [esp + 0x3c]
push esi
call fcn.0041fe60
add esp, 0x14
mov ecx, esi
call fcn.0040d970
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x44aa10]
lea esi, [ebx - 4]
mov eax, dword [ebx - 4]
lea ecx, [eax + eax*2]
lea edi, [ebx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44aa18]
push esi
call fcn.0040c650
add esp, 4
lea esi, [esp + 0x98]
mov edi, dword [esp + 0x30]
jmp dword [0x44aa28]
add edi, 0xfffffff4
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x44aa20]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x413890
push eax
call fcn.0040c650
add esp, 4
jmp 0x413890
push dword [esp + 0x110]
call fcn.004047d0
add esp, 4
mov ecx, eax
mov dword [esp + 0x3c], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x4138e3
mov esi, eax
test dl, dl
jne 0x4138e9
mov ecx, esi
push ecx
call fcn.0040c640
add esp, 4
mov ebx, eax
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
add ebx, 4
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0x28], ebx
jmp dword [eax*4 + 0x44a9e8]
mov eax, dword [esp + 0x3c]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*4]
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
lea ecx, [ebx + 0xc]
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x44a9f0]
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 + 0x44a9f0]
xor edi, edi
xor eax, eax
cmp edi, dword [esp + 0x3c]
setb al
lea esi, [esp + 0x98]
jmp dword [eax*4 + 0x44a9f8]
inc edi
xor eax, eax
cmp edi, dword [esp + 0x3c]
setb al
jmp dword [eax*4 + 0x44a9f8]
push edi
push dword [esp + 0x114]
call fcn.004047e0
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x98], 0xc1db
mov byte [esp + 0x9a], 0x3e
mov word [esp + 0x9b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x413a39
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x98]
mov edx, ecx
xor edx, 0x9b2efbf5
mov esi, ecx
xor esi, 0x64d1040a
or ecx, 0x1b2efbf5
and ecx, esi
lea ecx, [edx + ecx*2]
lea edx, [ecx + eax]
not eax
or ecx, eax
sub eax, ecx
lea eax, [edx + eax*2]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x37
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x4139e0
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x18]
call fcn.004044f0
add esp, 8
mov dword [esp + 0x44], eax
jmp dword [0x44aa04]
mov dword [esp + 4], 0xd64fa5
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
mov dword [esp + 0x1c], edi
ja 0x413ae7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x48]
movzx eax, byte [esp + eax + 4]
mov edx, ecx
not edx
or edx, 0x216859ce
add edx, ecx
xor ecx, 0xa16859ce
lea edx, [edx*2 + 2]
mov esi, edx
and esi, ecx
xor ecx, edx
lea ecx, [ecx + esi*2]
lea edx, [ecx + eax]
and ecx, eax
mov eax, edx
xor eax, ecx
add eax, ecx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, eax
mov dword [esp + 0x98], ecx
mov eax, dword [esp + 0x98]
add al, 0xfa
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x413a80
lea eax, [esp + 4]
push eax
push dword [esp + 0x18]
call fcn.004044f0
add esp, 8
mov dword [esp + 0x10], eax
mov word [esp + 0x98], 0xd5a5
mov byte [esp + 0x9a], 0x42
lea eax, [esp + 0x9a]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x413ba6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0x814e5e90
and eax, 0x14e5e90
lea edx, [edx + eax*2]
lea eax, [edx + ecx]
mov esi, ecx
not esi
or esi, edx
add ecx, esi
inc ecx
mov edx, eax
not edx
and edx, ecx
mov esi, ecx
not esi
and eax, esi
sub eax, edx
mov edx, eax
not edx
and edx, ecx
and eax, esi
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x30
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x413b40
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x18]
call fcn.004044f0
add esp, 8
lea ecx, [edi + edi*2]
lea edx, [ebx + ecx*4]
mov dword [esp + 0x2c], edx
mov dword [ebx + ecx*4], 0
mov edx, dword [esp + 0x44]
mov dword [ebx + ecx*4 + 4], edx
mov dword [ebx + ecx*4 + 8], eax
xor esi, esi
mov ebx, 0xfffffffe
mov eax, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x413bf0
lea eax, [ebx + 2]
test esi, esi
jns 0x413c08
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x2c]
mov dword [eax], edx
mov eax, dword [esp + 0x10]
lea edi, [eax + esi]
dec edi
mov dword [esp + 0x98], 0
cmp edi, eax
jbe 0x413c80
add ebx, edx
cmp edx, ebx
jae 0x413c80
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax], 0
je 0x413c80
lea esi, [esp + 0x98]
push esi
push edi
push eax
mov esi, eax
mov dword [esp + 0x1c], edx
call fcn.00410fa0
mov edx, dword [esp + 0x1c]
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edx], cx
add edx, 2
cmp edx, ebx
jae 0x413c80
add esi, eax
cmp esi, edi
mov eax, esi
jb 0x413c40
nop
nop
nop
nop
nop
mov word [edx], 0
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov dword [esp + 4], 0xd64fa5
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x413d17
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x48]
movzx eax, byte [esp + eax + 4]
mov edx, ecx
not edx
or edx, 0x216859ce
add edx, ecx
xor ecx, 0xa16859ce
lea edx, [edx*2 + 2]
mov esi, edx
and esi, ecx
xor ecx, edx
lea ecx, [ecx + esi*2]
lea edx, [ecx + eax]
and ecx, eax
mov eax, edx
xor eax, ecx
add eax, ecx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, eax
mov dword [esp + 0x98], ecx
mov eax, dword [esp + 0x98]
add al, 0xfa
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x413cb0
lea eax, [esp + 4]
push eax
push dword [esp + 0x18]
call fcn.004044f0
add esp, 8
mov dword [esp + 0x10], eax
mov word [esp + 0x98], 0xd5a5
mov byte [esp + 0x9a], 0x42
lea eax, [esp + 0x9a]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x413dd6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0x814e5e90
and eax, 0x14e5e90
lea edx, [edx + eax*2]
lea eax, [edx + ecx]
mov esi, ecx
not esi
or esi, edx
add ecx, esi
inc ecx
mov edx, eax
not edx
and edx, ecx
mov esi, ecx
not esi
and eax, esi
sub eax, edx
mov edx, eax
not edx
and edx, ecx
and eax, esi
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x30
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x413d70
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x18]
call fcn.004044f0
add esp, 8
lea ecx, [edi + edi*2]
lea edx, [ebx + ecx*4]
mov dword [esp + 0x2c], edx
mov dword [ebx + ecx*4], 0
mov edx, dword [esp + 0x44]
mov dword [ebx + ecx*4 + 4], edx
mov dword [ebx + ecx*4 + 8], eax
xor esi, esi
mov ebx, 0xfffffffe
mov eax, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x413e20
mov dword [esp + 0x1c], edi
lea eax, [ebx + 2]
test esi, esi
jns 0x413e3c
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x2c]
mov dword [eax], edx
mov eax, dword [esp + 0x10]
lea edi, [eax + esi]
dec edi
mov dword [esp + 0x98], 0
cmp edi, eax
jbe 0x413ec0
add ebx, edx
cmp edx, ebx
lea esi, [esp + 0x98]
jae 0x413ec7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax], 0
je 0x413ec7
push esi
push edi
push eax
mov esi, eax
mov dword [esp + 0x1c], edx
call fcn.00410fa0
mov edx, dword [esp + 0x1c]
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edx], cx
add edx, 2
cmp edx, ebx
jae 0x413ec0
add esi, eax
cmp esi, edi
mov eax, esi
lea esi, [esp + 0x98]
jb 0x413e80
jmp 0x413ec7
lea esi, [esp + 0x98]
mov word [edx], 0
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
jmp dword [0x44aa08]
mov edi, dword [esp + 0x30]
jmp dword [0x44aa28]
jmp dword [0x44aa30]
push edi
call fcn.0040c650
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.0040c650
add esp, 4
jmp dword [0x44aa3c]
jmp dword [0x44aa4c]
jmp dword [0x44aa50]
push dword [esp + 0x38]
jmp 0x415306
mov dword [esp + 0x100], 0x4eded2
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 3
ja 0x413fa5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x100]
mov edx, eax
xor edx, 0x687003f2
and eax, 0xe87003f2
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x46
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x100], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 4
jb 0x413f50
push 3
lea eax, [esp + 0x104]
push eax
push ebx
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44a818]
mov dword [esp + 0x2c], ebx
jmp dword [0x44a834]
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov ebx, eax
lea eax, [esp + 0x20]
push eax
push esi
push ebx
push edi
mov esi, dword [esp + 0x2c]
push esi
push 0
call dword [0x4505b8]
jmp dword [0x44a838]
mov word [esp + 0x98], 0x9908
lea eax, [esp + 0x9a]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x4144ad
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x98]
mov edx, ecx
xor edx, 0x76acc966
add ecx, ecx
and ecx, 0xed5992cc
mov esi, ecx
and esi, edx
xor ecx, edx
lea ecx, [ecx + esi*2]
xor ecx, eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
add al, 2
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x414460
lea esi, [esp + 0x98]
push esi
mov ebx, dword [esp + 0x30]
push ebx
call fcn.004044f0
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x98], 0x41ed
lea eax, [esp + 0x9a]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x414559
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx edx, byte [esp + eax + 0x98]
add ecx, 0xfb1e6770
mov eax, ecx
and eax, edx
xor ecx, edx
lea ecx, [ecx + eax*2]
mov edx, ecx
not edx
and edx, eax
add edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, eax
xor ecx, 0x30
and eax, 0x4f
add eax, eax
sub eax, ecx
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x414500
push esi
push ebx
call fcn.004045c0
add esp, 8
mov edi, eax
mov word [esp + 0x98], 0x8b0a
lea eax, [esp + 0x9a]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x4145e1
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0xe2872363
and eax, 0xe2872363
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, eax
xor ecx, 0xef
and eax, 0x10
add eax, eax
sub eax, ecx
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x414590
push esi
push ebx
call fcn.004044f0
add esp, 8
mov dword [esp + 0x30], eax
mov word [esp + 0x98], 0x79c4
mov dword [esp + 0x9a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x41466c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x98]
mov edx, ecx
not edx
or edx, 0x4b6dad96
add edx, ecx
xor ecx, 0x4b6dad96
lea ecx, [ecx + edx*2]
add ecx, 2
xor ecx, eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
add al, 0x12
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x414620
push esi
push ebx
call fcn.00404550
add esp, 8
fstp qword [esp + 0x3c]
mov dword [esp + 4], 0x26aa9a
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x4146e4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 4]
mov edx, eax
xor edx, 0x24a16c09
and eax, 0x24a16c09
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0xd3
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x4146a0
lea eax, [esp + 4]
push eax
push ebx
call fcn.00404550
add esp, 8
fstp qword [esp + 0x110]
mov dword [esp + 4], 0x1aafb6
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x41476c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x48]
movzx eax, byte [esp + eax + 4]
mov edx, ecx
not edx
or edx, 0x61694d7b
add edx, ecx
xor ecx, 0xe1694d7b
lea ecx, [ecx + edx*2]
add ecx, 2
xor ecx, eax
mov dword [esp + 0x98], ecx
mov eax, dword [esp + 0x98]
add al, 0x99
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x414720
mov dword [esp + 0x38], edi
lea eax, [esp + 4]
push eax
push ebx
call fcn.00404620
add esp, 8
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
lea esi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x414790
xor edi, edi
cmp eax, esi
jae 0x4147dd
cmp byte [eax], 0
je 0x4147dd
xor edi, edi
mov ebx, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push esi
push ebx
call fcn.00410fa0
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x4147dd
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4147b0
mov eax, edi
inc eax
jns 0x4147f0
mov eax, 0xffffffff
jmp 0x4147f7
lea eax, [edi*2 + 2]
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + edi*2]
mov ebx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x28]
jae 0x414870
mov ebx, dword [esp + 0x1c]
cmp ecx, esi
jae 0x414870
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x14], edi
cmp byte [ecx], 0
je 0x414870
lea eax, [esp + 0x98]
push eax
push esi
push ecx
mov edi, ecx
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x41486b
add edi, eax
cmp edi, esi
mov ecx, edi
mov edi, dword [esp + 0x14]
jb 0x414830
jmp 0x414870
mov edi, dword [esp + 0x14]
nop
mov word [ebx], 0
lea eax, [esp + 0x20]
push eax
push 0
push 0
push edi
push dword [esp + 0x2c]
push 0
call dword [0x4505b8]
mov esi, dword [esp + 0x20]
test esi, esi
js 0x414400
lea eax, [esi + esi]
jmp 0x414405
mov dword [esp + 0x118], 0x67a6a
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 3
ja 0x41490e
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x118]
mov edx, eax
xor edx, 0x91399001
and eax, 0x11399001
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, eax
xor ecx, 5
and eax, 0x7a
add eax, eax
sub eax, ecx
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x118], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 4
jb 0x4148c0
push 3
lea eax, [esp + 0x11c]
push eax
push ebx
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44a8b8]
mov word [esp + 0x98], 0x49a3
lea eax, [esp + 0x9a]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x4149b5
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0x26506b0e
mov esi, eax
xor esi, 0x59af94f1
or eax, 0x26506b0e
and eax, esi
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0xba
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x414960
lea esi, [esp + 0x98]
push esi
push ebx
call fcn.004044f0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x98], 0xcfbc
mov dword [esp + 0x9a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x414a34
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0xf9e8e0cd
and eax, 0xf9e8e0cd
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
dec al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x4149f0
push esi
push ebx
call fcn.004044f0
add esp, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 4], 0x394d
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x414aa4
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 4]
mov edx, eax
xor edx, 0x13b4d736
and eax, 0x13b4d736
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
add al, 0xf2
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x414a60
lea eax, [esp + 4]
push eax
push ebx
call fcn.004045c0
add esp, 8
mov dword [esp + 0x44], eax
mov word [esp + 0x98], 0x39be
lea eax, [esp + 0x9a]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x414b47
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x98]
mov edx, ecx
xor edx, 0x4261ff76
mov esi, ecx
xor esi, 0x3d9e0089
or ecx, 0x4261ff76
and ecx, esi
add ecx, ecx
mov esi, ecx
and esi, edx
xor ecx, edx
lea ecx, [ecx + esi*2]
xor ecx, eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
add al, 0xb2
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x414af0
lea eax, [esp + 0x98]
push eax
push ebx
call fcn.004044f0
add esp, 8
mov dword [esp + 0x38], eax
mov dword [esp + 4], 0x3b90
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x414bcb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 4]
mov edx, eax
xor edx, 0x1bbd730b
and eax, 0x1bbd730b
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x98], edx
mov eax, dword [esp + 0x98]
add al, 0xc9
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x414b80
lea eax, [esp + 4]
push eax
push ebx
call fcn.00404550
add esp, 8
mov dword [esp + 4], 0xcebaaa
fnstcw word [esp + 0x10e]
movzx eax, word [esp + 0x10e]
or eax, 0xc00
mov word [esp + 0x126], ax
fldcw word [esp + 0x126]
fistp dword [esp + 0x134]
fldcw word [esp + 0x10e]
mov eax, dword [esp + 0x134]
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x414ca3
nop
nop
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x48]
movzx eax, byte [esp + eax + 4]
lea edx, [ecx + ecx]
and edx, 0xbecb719a
mov esi, ecx
xor esi, 0x209a4732
mov edi, ecx
or edi, 0x5f65b8cd
and edi, esi
sub ecx, edx
lea edx, [ecx + edi*2]
lea ecx, [ecx + edi*2]
add ecx, 0x5f65b8cd
add edx, eax
add edx, 0x5f65b8cd
and ecx, eax
mov eax, edx
xor eax, ecx
add eax, ecx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, eax
mov dword [esp + 0x98], ecx
mov eax, dword [esp + 0x98]
dec al
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x414c30
lea eax, [esp + 4]
push eax
push ebx
call fcn.00404550
add esp, 8
xor esi, esi
mov ebx, 0xfffffffe
mov eax, dword [esp + 0x1c]
nop
nop
nop
nop
add ebx, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x414cc0
fnstcw word [esp + 0x10c]
movzx eax, word [esp + 0x10c]
or eax, 0xc00
mov word [esp + 0x124], ax
fldcw word [esp + 0x124]
fistp dword [esp + 0x130]
fldcw word [esp + 0x10c]
mov eax, dword [esp + 0x130]
mov dword [esp + 0x2c], eax
lea eax, [ebx + 2]
test esi, esi
jns 0x414d14
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x98], 0
add ebx, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
cmp eax, ebx
mov ecx, dword [esp + 0x1c]
jae 0x414d8d
lea edi, [ecx + esi]
dec edi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], eax
cmp ecx, edi
jae 0x414d8d
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], eax
cmp byte [ecx], 0
je 0x414d8d
lea eax, [esp + 0x98]
push eax
push edi
push ecx
mov esi, ecx
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov edx, dword [esp + 0x10]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x10], edx
cmp edx, ebx
jae 0x414d8d
add esi, eax
cmp esi, edi
mov ecx, esi
jb 0x414d52
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
lea ecx, [esp + 0x48]
mov esi, dword [esp + 0x14]
push esi
call fcn.0043d6a0
jmp dword [0x44a8c0]
push esi
call fcn.0040c650
add esp, 4
lea ecx, [esp + 0x48]
push 0x400
call fcn.0043d8f0
not eax
shr eax, 0x1f
lea esi, [esp + 0x98]
jmp dword [eax*4 + 0x44a8c8]
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x98], 0x989b9a9d
mov byte [esp + 0x9c], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 4
ja 0x414e79
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x20]
movzx edx, byte [esp + edx + 0x98]
mov esi, eax
xor esi, 0xcede9c5b
and eax, 0xcede9c5b
lea eax, [esi + eax*2]
lea esi, [eax + edx]
and eax, edx
mov edx, esi
not edx
and edx, eax
add edx, eax
not eax
and eax, esi
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x39
mov edx, dword [esp + 0x20]
mov byte [esp + edx + 0x98], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 5
jb 0x414e24
mov eax, dword [esp + 0x98]
mov edx, dword [0x4505bc]
test edx, edx
je 0x414f81
xor esi, esi
mov edi, dword [0x4505c0]
cmp dword [edi + esi*8], 0x1b788dcf
je 0x414f5c
inc esi
cmp edx, esi
jne 0x414e96
jmp 0x414f81
mov dword [esp + 0x2c], ebx
fnstcw word [esp + 0x108]
movzx eax, word [esp + 0x108]
or eax, 0xc00
mov word [esp + 0x120], ax
fldcw word [esp + 0x120]
fld qword [esp + 0x3c]
fistp dword [esp + 0x138]
fldcw word [esp + 0x108]
mov eax, dword [esp + 0x138]
mov dword [esp + 0x3c], eax
fnstcw word [esp + 0x106]
movzx eax, word [esp + 0x106]
or eax, 0xc00
mov word [esp + 0x11e], ax
fldcw word [esp + 0x11e]
fld qword [esp + 0x110]
fistp dword [esp + 0x13c]
fldcw word [esp + 0x106]
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x110], eax
jmp dword [0x44a840]
push esi
call fcn.0040c650
add esp, 4
mov ecx, dword [esp + 0x30]
mov eax, ecx
jmp 0x416325
mov ecx, dword [esp + 0x30]
mov esi, ecx
jmp 0x41631d
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x414f81
lea eax, [esp + 0x18]
push eax
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x4505c4]
push edx
call fcn.004403a0
add esp, 0x20
mov ecx, dword [case.0x41094b.151]
lea esi, [esp + 0x98]
nop
nop
jmp ecx
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x44a8e0]
mov eax, dword [esp + 0x18]
add eax, 2
push eax
call fcn.0043d560
add esp, 4
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x98], 0x989b9a9d
mov byte [esp + 0x9c], 0
add edx, 2
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 4
ja 0x41503b
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
movzx esi, byte [esp + esi + 0x98]
mov edi, eax
xor edi, 0xcede9c5b
and eax, 0xcede9c5b
lea eax, [edi + eax*2]
lea edi, [eax + esi]
and eax, esi
mov esi, edi
not esi
and esi, eax
add esi, eax
not eax
and eax, edi
sub eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x39
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x98], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 5
jb 0x414fe6
mov eax, dword [esp + 0x98]
mov esi, dword [0x4505bc]
test esi, esi
je case.default.0x415093
xor edi, edi
mov ebx, dword [0x4505c0]
cmp dword [ebx + edi*8], 0x1b788dcf
je 0x415064
inc edi
cmp esi, edi
jne 0x415054
jmp case.default.0x415093
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
je case.default.0x415093
push 0
push edx
push dword [esp + 0x38]
push 0x2b
push ecx
push 5
push dword [0x4505c4]
push esi
call fcn.004403a0
add esp, 0x20
not eax
shr eax, 0x1f
lea esi, [esp + 0x98]
jmp dword [eax*4 + 0x44a8e8]
mov ecx, dword [esp + 0x3c]
mov eax, ecx
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x4150a0
mov esi, edi
sub esi, ecx
mov eax, esi
inc eax
mov dword [esp + 0x1c], eax
lea eax, [esi + esi + 2]
jns 0x4150be
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + esi*2]
mov ebx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov esi, dword [esp + 0x3c]
jae 0x415124
mov ebx, dword [esp + 0x14]
cmp esi, edi
jae 0x415124
mov ebx, dword [esp + 0x14]
cmp byte [esi], 0
je 0x415124
lea eax, [esp + 0x98]
push eax
push edi
push esi
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x415124
add esi, eax
cmp esi, edi
jb 0x4150f3
mov word [ebx], 0
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 4]
movzx eax, word [eax]
and eax, 0xfffffffe
add eax, edx
add eax, 0xfffffffe
mov ecx, dword [case.0x415150.8]
xor ebx, ebx
mov dword [esp + 0x10], edx
cmp eax, edx
setae bl
mov edi, eax
mov edx, eax
jmp dword [ebx*4 + 0x44a8f0]
movzx esi, word [edx]
xor ebx, ebx
test si, si
setne bl
mov edi, eax
jmp dword [ebx*4 + 0x44a8f8]
xor ebx, ebx
cmp si, 0x5c
sete bl
mov edi, edx
jmp dword [ebx*4 + 0x44a900]
jmp ecx
add edx, 0xfffffffe
xor ebx, ebx
cmp edx, dword [esp + 0x10]
setae bl
mov edi, eax
jmp dword [ebx*4 + 0x44a8f0]
mov ebx, edi
sub ebx, dword [esp + 0x10]
sar ebx, 1
mov ecx, dword [esp + 0x1c]
add ecx, ebx
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x4151b1
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x1c], eax
mov esi, eax
cmp edi, dword [esp + 0x10]
je 0x41526d
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
lea ecx, [ebx - 1]
mov edx, ebx
and edx, 3
je 0x415212
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x10], ecx
xor edi, edi
mov esi, dword [esp + 0x1c]
movzx ecx, word [eax]
mov ebx, edx
xor edx, edx
test cx, cx
setne dl
lea eax, [eax + edx*2]
mov edx, ebx
mov word [esi], cx
add esi, 2
inc edi
cmp ebx, edi
jne 0x4151e9
mov ebx, dword [esp + 0x3c]
sub ebx, edi
mov ecx, dword [esp + 0x10]
jmp 0x415216
mov esi, dword [esp + 0x1c]
cmp ecx, 3
jb 0x41526d
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [esi], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [esi + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [esi + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [esi + 6], dx
add esi, 8
add ebx, 0xfffffffc
jne 0x41521b
mov edx, dword [esp + 0x14]
movzx eax, word [edx]
test ax, ax
je 0x4152f7
mov ecx, edx
add ecx, 2
mov edi, dword [esp + 0x1c]
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415282
mov word [esi], 0
jmp dword [0x44a918]
push edx
call fcn.0040c650
add esp, 4
sub esi, edi
mov eax, 0xffffffff
cmp esi, 0xfffffffe
jl 0x4152b8
add esi, 2
mov eax, esi
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x110], eax
push eax
push edi
call fcn.0043a580
add esp, 8
jmp dword [0x44a920]
push edi
call fcn.0040c650
add esp, 4
mov ecx, dword [esp + 0x38]
mov eax, ecx
jmp 0x41627b
mov ecx, dword [esp + 0x38]
mov edi, ecx
jmp 0x416273
mov edi, dword [esp + 0x1c]
mov word [esi], 0
jmp dword [0x44a918]
call fcn.0040c650
add esp, 4
jmp case.0x415150.57
jmp dword [0x44a958]
push dword [esp + 0x110]
call fcn.0040c650
add esp, 4
mov ecx, esi
call fcn.0040d970
mov ecx, esi
call fcn.0040cfb0
push dword [esp + 0x30]
call fcn.0043d5f0
add esp, 4
lea ecx, [esp + 0x48]
call fcn.0043dac0
jmp case.0x4132b1.1
jmp dword [0x44a9b8]
mov dword [esp + 0x1c], eax
xor esi, esi
xor eax, eax
cmp esi, dword [esp + 0x14]
setb al
jmp dword [eax*4 + 0x44a990]
lea eax, [esp + 4]
push eax
push edi
call fcn.00404620
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [esi + esi*2]
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + eax*4]
push edx
push dword [esp + 0x14]
push ebx
call fcn.0041a7b0
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
xor eax, eax
cmp esi, dword [esp + 0x14]
setb al
mov edi, dword [esp + 0x44]
jmp dword [eax*4 + 0x44a990]
push esi
push edi
call fcn.004047e0
add esp, 8
mov edi, eax
mov word [esp + 0x98], 0xe9f7
mov byte [esp + 0x9a], 0x9a
mov word [esp + 0x9b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x415444
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0x86b6b71b
and eax, 0x6b6b71b
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x79
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x415400
lea eax, [esp + 0x98]
push eax
push edi
call fcn.004044f0
add esp, 8
mov dword [esp + 0x10], eax
mov word [esp + 0x98], 0xab85
mov byte [esp + 0x9a], 0x22
mov word [esp + 0x9b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x4154e4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x98]
lea edx, [ecx + ecx]
and edx, 0x3e5fe610
mov ebx, ecx
not ebx
or ebx, 0x1f2ff308
add ebx, ecx
sub ecx, edx
lea ecx, [ecx + ebx*2]
add ecx, 0x9f2ff30a
xor ecx, eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
add al, 0xd8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x415490
lea eax, [esp + 0x98]
push eax
push edi
call fcn.004044f0
add esp, 8
mov ebx, eax
mov dword [esp + 4], 0x9747778
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 3
ja 0x415370
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 4]
mov edx, eax
xor edx, 0xae258f03
and eax, 0x2e258f03
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x98]
mov ecx, eax
not ecx
and ecx, 0xf
and eax, 0xf0
sub eax, ecx
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 4
jb 0x415520
jmp 0x415370
jmp dword [0x44a930]
push dword [esp + 0x3c]
call fcn.0040c650
add esp, 4
jmp dword [0x44a958]
mov edi, dword [esp + 0x30]
inc edi
mov eax, dword [esp + 0x38]
push eax
call fcn.004047d0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x44a858]
mov dword [esp + 0x30], edi
push edi
push dword [esp + 0x3c]
call fcn.004047b0
add esp, 8
push eax
call fcn.00404530
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44a868]
mov dword [esp + 0x14], eax
jmp dword [0x44a874]
xor eax, eax
cmp dword [esp + 0x44], 0
setg al
mov word [ebx], 0
push 0
push eax
push dword [esp + 0x44]
push dword [esp + 0x11c]
mov edi, dword [esp + 0x2c]
push edi
mov ebx, dword [esp + 0x40]
push ebx
push dword [esp + 0x40]
lea esi, [esp + 0xb4]
push esi
call fcn.004224f0
add esp, 0x20
mov eax, dword [esp + 0x14]
jmp dword [0x44a878]
mov edi, eax
inc eax
cmp byte [edi], 0
jne case.0x41094b.119
mov esi, edi
sub esi, dword [esp + 0x14]
mov eax, esi
inc eax
jns 0x41571f
mov eax, 0xffffffff
jmp 0x415726
lea eax, [esi*2 + 2]
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + esi*2]
mov ebx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
jae 0x4156c0
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x14], edi
jae 0x4156c0
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x4156c0
lea eax, [esp + 0x48]
push eax
push edi
push esi
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x4156c0
add esi, eax
cmp esi, edi
jb 0x415770
jmp 0x4156c0
jmp dword [0x44a880]
push edi
call fcn.0040c650
add esp, 4
jmp case.0x41094b.117
jmp dword [0x44a860]
push dword [esp + 0x28]
call fcn.0040c650
add esp, 4
jmp dword [0x44a888]
jmp dword [0x44a888]
push ebx
call fcn.0040c650
add esp, 4
mov ecx, esi
call fcn.0040d970
jmp case.0x415150.57
lea esi, [esp + 0x98]
mov ecx, esi
push 2
call fcn.0040cf70
push dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
push ebx
push dword [esp + 0x34]
push dword [esp + 0x34]
push esi
call fcn.0041b5c0
add esp, 0x14
mov ecx, esi
call fcn.0040d970
movzx eax, al
jmp dword [eax*4 + 0x44a998]
mov eax, dword [esp + 0x9c]
shr eax, 0xa
push 0xa
push 0xb
lea ecx, [esp + 0xc]
push ecx
push eax
call fcn.0041a910
add esp, 0x10
mov dword [esp + 0x20], 0xf7e0a7af
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 7
ja 0x4158bc
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0x20]
mov esi, ecx
xor esi, 0xdfdf5556
and ecx, 0xdfdf5556
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x48]
mov edx, ecx
not edx
and edx, 0xae
and ecx, 0x51
sub ecx, edx
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 8
jb 0x415870
mov dword [esp + 0x48], 0x7170444b
mov dword [esp + 0x4c], 0x874b777b
mov dword [esp + 0x50], 0x4743787e
mov dword [esp + 0x54], 0x4bbe7979
mov dword [esp + 0x58], 0x7641b14f
mov dword [esp + 0x5c], 0x74b6714a
mov dword [esp + 0x60], 0x56555b50
mov dword [esp + 0x64], 0xaf535855
mov dword [esp + 0x68], 0x58616050
mov dword [esp + 0x6c], 0x53a65161
mov dword [esp + 0x70], 0xa3ae59a7
mov dword [esp + 0x74], 0x9aad5d99
mov dword [esp + 0x78], 0xa197a7a2
mov dword [esp + 0x7c], 0xa8a25568
mov dword [esp + 0x80], 0x4bb688bc
mov dword [esp + 0x84], 0xb48d8cbc
mov dword [esp + 0x88], 0xb042b585
mov dword [esp + 0x8c], 0x6d83afbd
mov word [esp + 0x90], 0x1978
lea ecx, [esp + 0x4a]
mov byte [ecx + 0x4c], 0
mov dword [ecx + 0x48], 0
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x34]
cmp ecx, 0x4e
ja 0x4159e1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x34]
movzx edx, byte [esp + edx + 0x48]
mov esi, ecx
xor esi, 0xdaae5558
and ecx, 0xdaae5558
lea ecx, [esi + ecx*2]
lea esi, [ecx + edx]
and ecx, edx
mov edx, esi
not edx
and edx, ecx
add edx, ecx
not ecx
and ecx, esi
sub ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
add cl, 0x48
mov edx, dword [esp + 0x34]
mov byte [esp + edx + 0x48], cl
inc dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
cmp ecx, 0x4f
jb 0x415990
lea ecx, [0x44f5af]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x4159f0
movzx edx, byte [esp + 0x48]
test dl, dl
je 0x415a1f
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx + esi], dl
movzx edx, byte [esp + esi + 0x49]
inc esi
test dl, dl
jne 0x415a10
add ecx, esi
mov byte [ecx], 0
movzx edx, byte [eax]
test dl, dl
lea esi, [esp + 0x98]
je 0x415a4b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x415a40
mov byte [ecx], 0
movzx eax, byte [esp + 0x20]
test al, al
je 0x415a6b
lea edx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x415a60
mov byte [ecx], 0
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x44a9a0]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x44a9a0]
lea esi, [ebx - 4]
mov eax, dword [ebx - 4]
lea ecx, [eax + eax*2]
lea edi, [ebx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44a9a8]
push esi
call fcn.0040c650
add esp, 4
lea esi, [esp + 0x98]
jmp dword [0x44a9b8]
push dword [esp + 0x2c]
call fcn.0040c650
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44a9cc]
jmp dword [0x44a9d0]
push dword [esp + 0x28]
jmp 0x415306
add edi, 0xfffffff4
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x44a9b0]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x415b11
push eax
call fcn.0040c650
add esp, 4
mov eax, dword [edi - 8]
test eax, eax
je 0x415af0
push eax
call fcn.0040c650
add esp, 4
jmp 0x415af0
xor eax, eax
test edi, edi
setne al
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 0
jmp dword [eax*4 + 0x44a978]
push edi
call fcn.004047d0
add esp, 4
mov ecx, eax
mov dword [esp + 0x14], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x415b6b
mov esi, eax
test dl, dl
jne 0x415b71
mov ecx, esi
push ecx
call fcn.0040c640
add esp, 4
mov edx, dword [esp + 0x14]
mov dword [eax], edx
add eax, 4
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x44a980]
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + ecx*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 + 0x44a988]
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 + 0x44a988]
mov edi, dword [esp + 0x14]
inc edi
push ebx
call fcn.004047d0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x44a928]
mov dword [esp + 0x14], edi
push edi
push ebx
call fcn.004047b0
add esp, 8
push eax
call fcn.00404530
add esp, 4
mov edi, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x44a938]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x415c30
mov esi, ebx
sub esi, edi
mov eax, esi
inc eax
jns 0x415c56
mov eax, 0xffffffff
jmp 0x415c5d
jmp dword [0x44a94c]
lea eax, [esi*2 + 2]
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 4], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
jae 0x415cbb
mov esi, dword [esp + 0x1c]
cmp edi, ebx
jae 0x415cbb
mov esi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x415cbb
lea eax, [esp + 4]
push eax
push ebx
push edi
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 4]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x415cbb
add edi, eax
cmp edi, ebx
jb 0x415c90
mov word [esi], 0
push 0
push 0
push dword [esp + 0x30]
push dword [esp + 0x38]
mov edi, dword [esp + 0x2c]
push edi
push dword [esp + 0x124]
push dword [esp + 0x54]
lea esi, [esp + 0xb4]
push esi
call fcn.004224f0
add esp, 0x20
mov ebx, dword [esp + 0x44]
jmp dword [0x44a950]
push edi
call fcn.0040c650
add esp, 4
jmp case.0x415150.23
xor edi, edi
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
jmp 0x415599
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne case.0x413184.3
xor edi, edi
cmp ebx, ecx
jbe 0x415d6d
cmp byte [ecx], 0
je 0x415d6d
xor edi, edi
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push ebx
push esi
call fcn.00410fa0
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, ebx
jae 0x415d6d
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x415d40
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x415d7b
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov esi, eax
mov dword [esp + 0x98], 0
lea eax, [eax + edi*2]
mov dword [esp + 0x10], eax
cmp esi, eax
jae 0x415de1
mov edi, dword [esp + 0x14]
cmp edi, ebx
jae 0x415de1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x415de1
lea eax, [esp + 0x98]
push eax
push ebx
push edi
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x415de1
add edi, eax
cmp edi, ebx
jb 0x415db0
mov word [esi], 0
mov eax, dword [esp + 0x1c]
lea ebx, [eax - 1]
nop
nop
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x415df0
xor edi, edi
cmp eax, ebx
jae 0x415e3d
cmp byte [eax], 0
je 0x415e3d
xor edi, edi
mov esi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push ebx
push esi
call fcn.00410fa0
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, ebx
jae 0x415e3d
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x415e10
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x415e4b
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov esi, eax
mov dword [esp + 0x98], 0
lea eax, [eax + edi*2]
mov dword [esp + 0x10], eax
cmp esi, eax
jae 0x415eb1
mov edi, dword [esp + 0x1c]
cmp edi, ebx
jae 0x415eb1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x415eb1
lea eax, [esp + 0x98]
push eax
push ebx
push edi
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x415eb1
add edi, eax
cmp edi, ebx
jb 0x415e80
mov word [esi], 0
mov word [esp + 0x98], 0xb75b
mov byte [esp + 0x9a], 0x3e
mov dword [esp + 0x9b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x415f3b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0x8ad48135
and eax, 0xad48135
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0xf7
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x415ef0
lea eax, [esp + 0x98]
push eax
push dword [ebp + 8]
call fcn.004045c0
add esp, 8
mov eax, dword [esp + 0x14]
mov esi, eax
lea eax, [esi + 1]
cmp byte [esi], 0
jne 0x415f52
xor edi, edi
mov eax, dword [esp + 0x14]
cmp esi, eax
jbe 0x415fad
cmp byte [eax], 0
je 0x415fad
xor edi, edi
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push esi
push ebx
call fcn.00410fa0
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x415fad
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x415f80
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x415fbb
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
jae 0x416031
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x14], esi
jae 0x416031
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x416031
lea eax, [esp + 0x98]
push eax
push esi
push ebx
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x416031
add ebx, eax
cmp ebx, esi
jb 0x416000
mov word [edi], 0
mov eax, dword [esp + 0x1c]
lea esi, [eax - 1]
nop
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x416040
xor edi, edi
mov eax, dword [esp + 0x1c]
cmp eax, esi
jae 0x41608d
cmp byte [eax], 0
je 0x41608d
xor edi, edi
mov ebx, dword [esp + 0x1c]
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push esi
push ebx
call fcn.00410fa0
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x41608d
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x416060
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41609b
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
jae 0x416111
mov edi, dword [esp + 0x2c]
cmp dword [esp + 0x1c], esi
jae 0x416111
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x416111
lea eax, [esp + 0x98]
push eax
push esi
push ebx
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x416111
add ebx, eax
cmp ebx, esi
jb 0x4160e0
mov word [edi], 0
mov word [esp + 0x98], 0xb75b
mov byte [esp + 0x9a], 0x3e
mov dword [esp + 0x9b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x41619b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x98]
mov edx, eax
xor edx, 0x8ad48135
and eax, 0xad48135
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0xf7
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x98], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x416150
lea eax, [esp + 0x98]
push eax
push dword [ebp + 8]
call fcn.004045c0
add esp, 8
mov edi, eax
mov ecx, dword [esp + 0x14]
mov eax, ecx
mov dword [esp + 0x44], edi
jmp dword [0x44a970]
mov ecx, esi
push 1
call fcn.0040cf70
jmp dword [0x44a854]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4161ed
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x30]
jae 0x416261
mov edi, dword [esp + 0x28]
cmp ebx, esi
jae 0x416261
mov edi, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x416261
lea eax, [esp + 0x98]
push eax
push esi
push ebx
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x416261
add ebx, eax
cmp ebx, esi
jb 0x416230
mov word [edi], 0
lea esi, [esp + 0x98]
jmp dword [0x44a84c]
lea eax, [edi + 1]
cmp byte [edi], 0
je 0x41627f
mov edi, eax
jmp 0x416273
push edi
push ecx
call fcn.0041a760
add esp, 8
mov esi, eax
inc eax
lea eax, [esi + esi + 2]
jns 0x416297
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x98], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x38]
jae 0x4162fd
mov esi, dword [esp + 0x3c]
cmp ebx, edi
jae 0x4162fd
mov esi, dword [esp + 0x3c]
cmp byte [ebx], 0
je 0x4162fd
lea eax, [esp + 0x98]
push eax
push edi
push ebx
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x98]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x4162fd
add ebx, eax
cmp ebx, edi
jb 0x4162cc
mov word [esi], 0
lea esi, [esp + 0x98]
mov ecx, esi
push 1
call fcn.0040cf70
xor edi, edi
mov ebx, dword [esp + 0x44]
jmp case.0x41094b.168
lea eax, [esi + 1]
cmp byte [esi], 0
je case.0x41094b.107
mov esi, eax
jmp 0x41631d
xor edi, edi
cmp ecx, esi
jae case.0x41094b.109
cmp byte [ecx], 0
je case.0x41094b.109
xor edi, edi
mov ebx, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x98], 0
lea eax, [esp + 0x98]
push eax
push esi
push ebx
call fcn.00410fa0
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae case.0x41094b.109
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x416350
jmp case.0x41094b.109
mov ecx, dword [case.0x415150.92]
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
call [ebp - 0x7974626b]
js 0x416f0b
add byte [eax], al
mov ecx, dword [esi + 0x37c]
mov eax, dword [ecx + eax*4]
jmp eax
invalid
inc edi
jo 0x416f96
mov edi, 0x398868b
add byte [eax], al
mov ecx, dword [esi + 0x39c]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x2ac]
mov al, byte [eax]
mov byte [esi + 0x128], al
mov ecx, dword [esi + 0xb8]
mov byte [ecx], 0x7d
mov byte [ecx + 1], 0x11
mov eax, 2
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 8
jne 0x416f4a
mov dword [esi + 0x58], 0
mov edi, dword [esi + 0x1c]
mov eax, dword [esi + 0x58]
cmp eax, 8
jae 0x416fa5
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0xb8]
movzx ecx, byte [edx + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041ac80
add esp, 8
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0xb8]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0xb8]
mov eax, dword [esi + 0x58]
inc eax
mov dword [esi + 0x58], eax
jmp 0x416f60
sub esp, 0xc
mov dword [esp + 4], ecx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
mov dword [esp + 8], 3
call fcn.00404770
add esp, 0xc
test eax, eax
setne al
mov ecx, dword [esi + 0x810]
mov edx, dword [esi + 0x814]
mov ecx, dword [edx + ecx*4]
jmp ecx
call fcn.0041b030
mov dword [esi + 0x548], 1
mov eax, dword [esi + 0x54c]
mov ecx, dword [esi + 0x548]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x8b8]
mov ecx, dword [esi + 0x8bc]
mov eax, dword [ecx + eax*4]
jmp eax
xor ebx, ebx
mov eax, edx
sub eax, 1
sete byte [esi + 0x25]
mov eax, dword [esi + 0x738]
mov ecx, dword [esi + 0x73c]
mov eax, dword [ecx + eax*4]
jmp eax
mov es, word [esi - 0x137c035f]
sbb al, 0x89
jl 0x41711c
add al, 0x8b
inc esi
add al, 0x89
add al, 0x24
mov dword [esp + 0x18], 0x80
mov dword [esp + 0x14], 0x60
mov dword [esp + 0x10], 5
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x100002
add byte [eax], al
add bh, al
inc esp
and al, 8
add al, byte [eax]
adc byte [eax], al
call fcn.004437f0
add esp, 0x1c
mov eax, dword [esi + 0x360]
mov ecx, dword [esi + 0x364]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x568], 0
mov eax, dword [esi + 0x56c]
mov ecx, dword [esi + 0x568]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, byte [esi + 0x24]
mov bl, al
and ebx, 1
mov dword [esi + 0x478], ebx
mov eax, dword [esi + 0x47c]
mov ecx, dword [esi + 0x478]
mov eax, dword [eax + ecx*4]
jmp eax
mov word [edi], 0
mov eax, dword [esi + 0x280]
mov al, byte [eax]
mov byte [esi + 0x144], al
mov edi, dword [esi + 0x284]
mov byte [edi], 0x4f
mov byte [edi + 1], 0x2b
mov byte [edi + 2], 0x7e
mov byte [edi + 3], 0x29
mov byte [edi + 4], 0x63
mov byte [edi + 5], 0x2f
mov byte [edi + 6], 0x7d
mov byte [edi + 7], 0x2d
mov byte [edi + 8], 0x7c
mov byte [edi + 9], 0x33
mov byte [edi + 0xa], 0x59
mov byte [edi + 0xb], 0x31
mov byte [edi + 0xc], 0x6c
mov byte [edi + 0xd], 0x37
mov byte [edi + 0xe], 0x36
mov byte [edi + 0xf], 0x35
mov eax, 0x10
mov byte [edi + eax], 0
add eax, 1
cmp eax, 0x12
jne 0x4171dc
mov dword [esi + 0x74], 0
mov eax, dword [esi + 0x74]
cmp eax, 0x12
jae 0x417222
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x74]
movzx ecx, byte [edi + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041adf0
add esp, 8
mov ecx, dword [esi + 0x74]
mov byte [edi + ecx], al
mov eax, dword [esi + 0x74]
inc eax
mov dword [esi + 0x74], eax
jmp 0x4171ef
sub esp, 8
mov dword [esp + 4], edi
mov edi, dword [esi + 0x1dc]
mov dword [esp], edi
call fcn.0040f420
mov ecx, dword [esi + 0x1e0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0040f420
add esp, 8
mov ebx, eax
sub ebx, edi
sar ebx, 1
mov eax, dword [0x4505b8]
sub esp, 0x18
mov ecx, dword [esi + 0xd8]
mov dword [esp + 0x14], ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0
call eax
mov eax, dword [esi + 0xd8]
mov eax, dword [eax]
add eax, 4
add eax, eax
mov ecx, 0xffffffff
jb 0x41729b
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c640
add esp, 4
mov edi, dword [0x4505b8]
mov edx, dword [esi + 0xd8]
mov ecx, dword [edx]
sub esp, 0x18
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
mov dword [esi + 4], eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov ecx, dword [esi + 0x1dc]
mov dword [esp + 4], ecx
mov dword [esp], 0
call edi
xor eax, eax
mov edx, dword [esi + 0x18]
test edx, edx
sete al
mov dword [esi + 0x760], eax
mov eax, dword [esi + 0x764]
mov ecx, dword [esi + 0x760]
mov eax, dword [eax + ecx*4]
mov edi, dword [esi + 0x27c]
jmp eax
call fcn.0041b030
mov dword [esi + 0x780], 0
mov eax, dword [esi + 0x784]
mov ecx, dword [esi + 0x780]
mov eax, dword [eax + ecx*4]
mov edi, dword [esi + 0x288]
jmp eax
mov eax, dword [esi + 0x5b8]
mov ecx, dword [esi + 0x5bc]
mov eax, dword [ecx + eax*4]
xor edi, edi
jmp eax
sub esp, 4
mov dword [esp], ebx
call fcn.0040c650
add esp, 4
mov eax, dword [esi + 0x790]
mov ecx, dword [esi + 0x794]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x430], 0
mov eax, dword [esi + 0x434]
mov ecx, dword [esi + 0x430]
mov eax, dword [eax + ecx*4]
mov ebx, dword [esi + 0xbc]
jmp eax
sub esp, 8
mov eax, dword [esi + 0xc8]
mov dword [esp], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 4], eax
call fcn.004047e0
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x1ec]
mov al, byte [eax]
mov byte [esi + 0x120], al
mov byte [ebx], 0x1d
mov byte [ebx + 1], 0x91
mov eax, 2
mov byte [ebx + eax], 0
add eax, 1
cmp eax, 5
jne 0x4173bc
mov dword [esi + 0x4c], 0
mov eax, dword [esi + 0x4c]
cmp eax, 5
jae 0x417402
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x4c]
movzx ecx, byte [ebx + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041ac10
add esp, 8
mov ecx, dword [esi + 0x4c]
mov byte [ebx + ecx], al
mov eax, dword [esi + 0x4c]
inc eax
mov dword [esi + 0x4c], eax
jmp 0x4173cf
sub esp, 0xc
mov dword [esp + 4], ebx
mov dword [esi + 0x14], edi
mov dword [esp], edi
mov dword [esp + 8], 2
call fcn.00404770
add esp, 0xc
xor ecx, ecx
test eax, eax
setne al
mov dword [esi + 0x868], 1
mov edx, dword [esi + 0x86c]
mov edi, dword [esi + 0x868]
mov edx, dword [edx + edi*4]
jmp edx
mov eax, dword [esi + 0x3f8]
mov ecx, dword [esi + 0x3fc]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
xor eax, eax
test ebx, ebx
setne cl
mov dword [esi + 0x830], 1
mov edx, dword [esi + 0x834]
mov edi, dword [esi + 0x830]
mov edx, dword [edx + edi*4]
jmp edx
mov eax, dword [esi + 0xcc]
mov eax, dword [eax]
mov dword [esi + 0x244], eax
mov al, byte [esi + 0xe0]
mov byte [esi + 0x194], al
mov byte [esi + 0xe4], 0x9d
mov byte [esi + 0xe5], 0x9a
mov byte [esi + 0xe6], 0x9b
mov byte [esi + 0xe7], 0x98
mov eax, 4
mov byte [esi + eax + 0xe4], 0
add eax, 1
cmp eax, 5
jne 0x4174d4
mov dword [esi + 0x34], 0
mov eax, dword [esi + 0x34]
cmp eax, 5
jae 0x417526
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x34]
movzx ecx, byte [esi + ecx + 0xe4]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041abd0
add esp, 8
mov ecx, dword [esi + 0x34]
mov byte [esi + ecx + 0xe4], al
mov eax, dword [esi + 0x34]
inc eax
mov dword [esi + 0x34], eax
jmp 0x4174eb
mov ecx, dword [esi + 0xe4]
xor edi, edi
cmp edi, dword [0x4505bc]
jb 0x417538
jmp 0x417598
mov eax, dword [0x4505c0]
cmp dword [eax + edi*8], 0x625b6034
sete bl
test bl, 1
jne 0x41754e
jmp 0x41758c
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x41758c
mov dword [esi + 0x224], ecx
mov ecx, dword [0x4505c4]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esi + 0x244]
mov dword [esp + 0xc], eax
call fcn.004403a0
mov ecx, dword [esi + 0x224]
add esp, 0x10
test bl, 1
je 0x417593
jmp 0x417598
add edi, 1
jmp 0x41752e
call fcn.0041b030
call fcn.0041b030
mov eax, dword [esi + 0x2e0]
mov ecx, dword [esi + 0x2e4]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x5d0], 1
mov eax, dword [esi + 0x5d4]
mov ecx, dword [esi + 0x5d0]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, cl
and eax, 1
mov dword [esi + 0x6c8], eax
mov eax, dword [esi + 0x6cc]
mov ecx, dword [esi + 0x6c8]
mov eax, dword [eax + ecx*4]
jmp eax
xor eax, eax
mov cl, byte [esi + 0x26]
mov al, cl
and eax, 1
mov dword [esi + 0x648], eax
mov eax, dword [esi + 0x64c]
mov ecx, dword [esi + 0x648]
mov eax, dword [eax + ecx*4]
mov edi, ebx
jmp eax
mov edi, dword [esi + 0x10]
mov eax, dword [edi]
sub esp, 4
mov dword [esp], eax
call fcn.0043d5f0
add esp, 4
mov dword [edi], 0
not ebx
shr ebx, 0x1f
mov dword [esi + 0x6b8], ebx
mov eax, dword [esi + 0x6bc]
mov ecx, dword [esi + 0x6b8]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x348]
mov ecx, dword [esi + 0x34c]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x450], 0
mov eax, dword [esi + 0x454]
mov ecx, dword [esi + 0x450]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x470], 1
mov eax, dword [esi + 0x474]
mov ecx, dword [esi + 0x470]
mov eax, dword [eax + ecx*4]
jmp eax
inc esi
test eax, edi
fst dword [esi - 0x742dbf6c]
xchg al, bl
add dword [eax], eax
add byte [edx + 0x48868800], cl
add dword [eax], eax
add dh, al
pop es
ret 0x47c6
mov eax, dword [esi + 0x538]
mov ecx, dword [esi + 0x53c]
mov eax, dword [ecx + eax*4]
mov dword [esi + 4], 0
jmp eax
mov al, byte [esi + 0x23]
mov bl, al
and ebx, 1
mov dword [esi + 0x5c8], ebx
mov eax, dword [esi + 0x5cc]
mov ecx, dword [esi + 0x5c8]
mov eax, dword [eax + ecx*4]
mov dword [esi + 8], 0
mov ebx, dword [esi + 4]
jmp eax
mov dword [esi + 0x20c], edi
mov edi, edx
call fcn.0040cd00
mov ecx, eax
mov edx, 0x38e38e39
mov eax, ecx
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esi + 0x20c]
mov ecx, edx
add ecx, 2
mov word [edx], ax
inc edi
mov eax, dword [esi + 0x758]
mov edx, dword [esi + 0x75c]
mov eax, dword [edx + eax*4]
mov edx, edi
mov edi, ecx
jmp eax
retf
call fcn.0041b030
sub esp, 0x1c
mov dword [esp + 4], edi
mov eax, dword [esi + 4]
mov dword [esp], eax
mov dword [esp + 0x18], 0x80
mov dword [esp + 0x14], 0x60
mov dword [esp + 0x10], 5
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x100002
call fcn.004437f0
add esp, 0x1c
mov ebx, eax
xor eax, eax
test ebx, ebx
setns cl
mov dword [esi + 0x6d0], 0
mov edx, dword [esi + 0x6d4]
mov edi, dword [esi + 0x6d0]
mov edx, dword [edx + edi*4]
mov edi, dword [esi + 0x2c]
jmp edx
mov ebx, edi
add ebx, 2
mov word [edi], 0x2c
mov eax, dword [esi + 0xc4]
shl eax, 1
mov ecx, ebx
add ecx, eax
mov dword [esi + 0x21c], ecx
sub esp, 4
mov edi, dword [esi + 0x1b4]
mov dword [esp], edi
call fcn.0040c780
add esp, 4
mov ecx, edi
add ecx, eax
mov dword [esi + 0x210], ecx
mov dword [esi + 0x200], 0
mov eax, ebx
mov ebx, edi
mov edi, eax
call fcn.0041b030
call fcn.0041b030
mov eax, dword [esi + 0x21c]
add eax, 0xfffffffe
mov ecx, edi
sub ecx, eax
setb al
mov ecx, ebx
mov edx, dword [esi + 0x210]
sub ecx, edx
setb cl
and al, cl
test al, 1
mov ecx, edx
jne 0x4179ec
jmp 0x417a21
cmp byte [ebx], 0
je 0x417a21
lea eax, [esi + 0x200]
sub esp, 0xc
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00410fa0
add esp, 0xc
add ebx, eax
mov eax, dword [esi + 0x200]
mov ecx, edi
add ecx, 2
mov word [edi], ax
mov edi, ecx
jmp 0x4179bb
mov word [edi], 0
mov eax, dword [esi + 0x640]
mov ecx, dword [esi + 0x644]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne dl
mov dword [esi + 0x448], 0
mov edi, dword [esi + 0x44c]
mov ebx, dword [esi + 0x448]
mov edi, dword [edi + ebx*4]
jmp edi
xor eax, eax
sub edx, 2
sete al
mov dword [esi + 0x518], eax
mov eax, dword [esi + 0x51c]
mov ecx, dword [esi + 0x518]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x740]
mov ecx, dword [esi + 0x744]
mov eax, dword [ecx + eax*4]
mov edi, dword [esi + 0x2c]
jmp eax
mov al, cl
and eax, 1
mov dword [esi + 0x420], eax
mov eax, dword [esi + 0x424]
mov ecx, dword [esi + 0x420]
mov eax, dword [eax + ecx*4]
jmp eax
sub esp, 4
mov dword [esp], edi
call fcn.0040c650
add esp, 4
mov eax, dword [esi + 0x660]
mov ecx, dword [esi + 0x664]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x558]
mov ecx, dword [esi + 0x55c]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0xd0]
mov eax, dword [eax]
mov dword [esi + 0x248], eax
mov al, byte [esi + 0x104]
mov byte [esi + 0x188], al
mov byte [esi + 0x108], 0x9d
mov byte [esi + 0x109], 0x9a
mov byte [esi + 0x10a], 0x9b
mov byte [esi + 0x10b], 0x98
mov eax, 4
mov byte [esi + eax + 0x108], 0
add eax, 1
cmp eax, 5
jne 0x417b1d
mov dword [esi + 0x40], 0
mov eax, dword [esi + 0x40]
cmp eax, 5
jae 0x417b6f
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x40]
movzx ecx, byte [esi + ecx + 0x108]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041abd0
add esp, 8
mov ecx, dword [esi + 0x40]
mov byte [esi + ecx + 0x108], al
mov eax, dword [esi + 0x40]
inc eax
mov dword [esi + 0x40], eax
jmp 0x417b34
mov ecx, dword [esi + 0x108]
xor edi, edi
cmp edi, dword [0x4505bc]
jb 0x417b81
jmp 0x417be1
mov eax, dword [0x4505c0]
cmp dword [eax + edi*8], 0x625b6034
sete bl
test bl, 1
jne 0x417b97
jmp 0x417bd5
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x417bd5
mov dword [esi + 0x228], ecx
mov ecx, dword [0x4505c4]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esi + 0x248]
mov dword [esp + 0xc], eax
call fcn.004403a0
mov ecx, dword [esi + 0x228]
add esp, 0x10
test bl, 1
je 0x417bdc
jmp 0x417be1
add edi, 1
jmp 0x417b77
call fcn.0041b030
call fcn.0041b030
mov eax, dword [esi + 0x4e8]
mov ecx, dword [esi + 0x4ec]
mov eax, dword [ecx + eax*4]
jmp eax
xor eax, eax
mov ecx, edx
sub ecx, 2
setl al
mov dword [esi + 0x520], eax
mov eax, dword [esi + 0x524]
mov ecx, dword [esi + 0x520]
mov eax, dword [eax + ecx*4]
jmp eax
sub esp, 8
mov eax, dword [esi + 0xc8]
mov dword [esp], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 4], eax
call fcn.004047e0
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x1ec]
mov al, byte [eax]
mov byte [esi + 0x11c], al
mov byte [ebx], 0x1d
mov byte [ebx + 1], 0x91
mov eax, 2
mov byte [ebx + eax], 0
add eax, 1
cmp eax, 5
jne 0x417c54
mov dword [esi + 0x50], 0
mov eax, dword [esi + 0x50]
cmp eax, 5
jae 0x417c9a
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x50]
movzx ecx, byte [ebx + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041ac10
add esp, 8
mov ecx, dword [esi + 0x50]
mov byte [ebx + ecx], al
mov eax, dword [esi + 0x50]
inc eax
mov dword [esi + 0x50], eax
jmp 0x417c67
sub esp, 0xc
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 8], 2
call fcn.00404770
add esp, 0xc
mov eax, dword [esi + 0x3b0]
mov ecx, dword [esi + 0x3b4]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x460]
mov ecx, dword [esi + 0x464]
mov eax, dword [ecx + eax*4]
jmp eax
adc ecx, dword [eax + edx*4 + 0x70868bbc]
add eax, dword [eax]
add byte [ebx + 0x3748e], cl
add byte [ebx - 0x1f007efc], cl
cmp byte [ecx], al
and byte [eax - 0x7d], ch
in al, dx
add al, 0x8b
inc esi
or byte [ecx + 0x53e82404], cl
dec ecx
invalid
call fcn.0041b030
mov dword [esi + 0x630], 1
mov eax, dword [esi + 0x634]
mov ecx, dword [esi + 0x630]
mov eax, dword [eax + ecx*4]
jmp eax
mov cl, dl
and ecx, 1
mov dword [esi + 0x4b8], ecx
mov ecx, dword [esi + 0x4bc]
mov edx, dword [esi + 0x4b8]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [esi + 0x8a0]
mov ecx, dword [esi + 0x8a4]
mov eax, dword [ecx + eax*4]
xor ebx, ebx
jmp eax
mov al, cl
and eax, 1
mov dword [esi + 0x588], eax
mov eax, dword [esi + 0x58c]
mov ecx, dword [esi + 0x588]
mov eax, dword [eax + ecx*4]
mov dword [esi + 8], 0
mov dword [esi + 4], 0
jmp eax
call fcn.0041b030
mov dword [esi + 0x650], 0
mov eax, dword [esi + 0x654]
mov ecx, dword [esi + 0x650]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x7b8], 1
mov eax, dword [esi + 0x7bc]
mov ecx, dword [esi + 0x7b8]
mov eax, dword [eax + ecx*4]
mov edi, dword [esi + 0x1a8]
jmp eax
mov eax, dword [esi + 0xcc]
mov eax, dword [eax]
mov dword [esi + 0x240], eax
mov al, byte [esi + 0xec]
mov byte [esi + 0x190], al
mov byte [esi + 0xf0], 0x9d
mov byte [esi + 0xf1], 0x9a
mov byte [esi + 0xf2], 0x9b
mov byte [esi + 0xf3], 0x98
mov eax, 4
mov byte [esi + eax + 0xf0], 0
add eax, 1
cmp eax, 5
jne 0x417e0b
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 5
jae 0x417e5d
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
movzx ecx, byte [esi + ecx + 0xf0]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041abd0
add esp, 8
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0xf0], al
mov eax, dword [esi + 0x38]
inc eax
mov dword [esi + 0x38], eax
jmp 0x417e22
mov ecx, dword [esi + 0xf0]
xor edi, edi
cmp edi, dword [0x4505bc]
jb 0x417e6f
jmp 0x417ecf
mov eax, dword [0x4505c0]
cmp dword [eax + edi*8], 0x625b6034
sete bl
test bl, 1
jne 0x417e85
jmp 0x417ec3
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x417ec3
mov dword [esi + 0x220], ecx
mov ecx, dword [0x4505c4]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esi + 0x240]
mov dword [esp + 0xc], eax
call fcn.004403a0
mov ecx, dword [esi + 0x220]
add esp, 0x10
test bl, 1
je 0x417eca
jmp 0x417ecf
add edi, 1
jmp 0x417e65
call fcn.0041b030
call fcn.0041b030
mov dword [esi + 0x468], 0
mov eax, dword [esi + 0x46c]
mov ecx, dword [esi + 0x468]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x6b0]
mov ecx, dword [esi + 0x6b4]
mov eax, dword [ecx + eax*4]
mov edi, 4
mov dword [esi + 8], 0
mov ebx, dword [esi + 4]
jmp eax
inc ecx
mov bh, 0x10
adc dword [ecx + 0x4505b0], esp
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x46483752
call fcn.00442e70
add esp, 8
mov edi, eax
call fcn.0041b030
call fcn.0041b030
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
sub esp, 0x18
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x4246c0
mov dword [esp + 4], 0
mov dword [esp], 0
call edi
mov eax, dword [esi + 0x2f0]
mov ecx, dword [esi + 0x2f4]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x580], 1
mov eax, dword [esi + 0x584]
mov ecx, dword [esi + 0x580]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x840]
mov ecx, dword [esi + 0x844]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x2a4]
mov al, byte [eax]
mov byte [esi + 0x12c], al
mov edi, dword [esi + 0x2a8]
mov byte [edi], 0x4b
mov byte [edi + 1], 0x3f
mov eax, 2
mov byte [edi + eax], 0
add eax, 1
cmp eax, 7
jne 0x417ffa
mov dword [esi + 0x5c], 0
mov eax, dword [esi + 0x5c]
cmp eax, 7
jae 0x418040
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x5c]
movzx ecx, byte [edi + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041acb0
add esp, 8
mov ecx, dword [esi + 0x5c]
mov byte [edi + ecx], al
mov eax, dword [esi + 0x5c]
inc eax
mov dword [esi + 0x5c], eax
jmp 0x41800d
sub esp, 8
mov eax, dword [esi + 0x14]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.004044f0
add esp, 8
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0x29c]
mov al, byte [eax]
mov byte [esi + 0x130], al
mov edi, dword [esi + 0x2a0]
mov byte [edi], 0x1e
mov byte [edi + 1], 0x2f
mov byte [edi + 2], 0xba
mov eax, 3
mov byte [edi + eax], 0
add eax, 1
cmp eax, 7
jne 0x41807f
mov dword [esi + 0x60], 0
mov eax, dword [esi + 0x60]
cmp eax, 7
jae 0x4180c5
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x60]
movzx ecx, byte [edi + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041acf0
add esp, 8
mov ecx, dword [esi + 0x60]
mov byte [edi + ecx], al
mov eax, dword [esi + 0x60]
inc eax
mov dword [esi + 0x60], eax
jmp 0x418092
sub esp, 8
mov dword [esp + 4], edi
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call fcn.00404550
add esp, 8
fnstcw word [esi + 0xa6]
movzx eax, word [esi + 0xa6]
or eax, 0xc00
mov word [esi + 0x19a], ax
fldcw word [esi + 0x19a]
fistp dword [esi + 0x2bc]
fldcw word [esi + 0xa6]
mov ecx, dword [esi + 0x2bc]
mov eax, dword [esi + 0x294]
mov al, byte [eax]
mov byte [esi + 0x134], al
mov edi, dword [esi + 0x298]
mov byte [edi], 0x85
mov byte [edi + 1], 0x19
mov eax, 2
mov byte [edi + eax], 0
add eax, 1
cmp eax, 4
jne 0x41812b
mov dword [esi + 0x18], ecx
mov dword [esi + 0x64], 0
mov eax, dword [esi + 0x64]
cmp eax, 4
jae 0x418174
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x64]
movzx ecx, byte [edi + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041ad30
add esp, 8
mov ecx, dword [esi + 0x64]
mov byte [edi + ecx], al
mov eax, dword [esi + 0x64]
inc eax
mov dword [esi + 0x64], eax
jmp 0x418141
sub esp, 8
mov dword [esp + 4], edi
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call fcn.00404550
add esp, 8
fnstcw word [esi + 0xa4]
movzx eax, word [esi + 0xa4]
or eax, 0xc00
mov word [esi + 0x198], ax
fldcw word [esi + 0x198]
fistp dword [esi + 0x2b8]
fldcw word [esi + 0xa4]
mov eax, dword [esi + 0x2b8]
mov dword [esi + 0x1a8], eax
mov edi, dword [esi + 0xdc]
add edi, 0x800
sub esp, 4
mov ebx, dword [esi + 0xc0]
mov dword [esp], ebx
call fcn.0040c780
add esp, 4
add ebx, eax
mov dword [esi + 0x214], ebx
mov dword [esi + 0x208], 0
mov ebx, dword [esi + 0xdc]
call fcn.0041b030
call fcn.0041b030
mov eax, edi
add eax, 0xfffffffe
mov dword [esi + 0x19c], ebx
sub ebx, eax
setb al
mov edx, dword [esi + 0xc0]
mov ecx, edx
mov ebx, dword [esi + 0x214]
sub ecx, ebx
setb cl
and al, cl
test al, 1
mov ecx, ebx
jne 0x41822f
jmp 0x418270
cmp byte [edx], 0
je 0x418270
lea eax, [esi + 0x208]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov ebx, edx
call fcn.00410fa0
add esp, 0xc
add ebx, eax
mov dword [esi + 0xc0], ebx
mov eax, dword [esi + 0x208]
mov edx, dword [esi + 0x19c]
mov ebx, edx
add ebx, 2
mov word [edx], ax
jmp 0x4181f8
mov eax, dword [esi + 0x19c]
mov word [eax], 0
sub esp, 0xc
mov eax, dword [esi + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esi + 0xdc]
mov dword [esp], eax
call fcn.0040f460
add esp, 0xc
movzx eax, al
mov dword [esi + 0x7d8], eax
mov eax, dword [esi + 0x7dc]
mov ecx, dword [esi + 0x7d8]
mov eax, dword [eax + ecx*4]
jmp eax
add ebx, 9
add ebx, dword [esi + 0xc4]
xor eax, eax
mov dword [esi + 0x254], edx
sub eax, edx
sub ebx, eax
xor ecx, ecx
sub ecx, ebx
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4182ed
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c640
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x268]
mov al, byte [eax]
mov byte [esi + 0x160], al
mov edx, dword [esi + 0x1c4]
mov byte [edx], 0x76
mov byte [edx + 1], 0xe7
mov byte [edx + 2], 0x69
mov byte [edx + 3], 0xe1
mov byte [edx + 4], 0x76
mov byte [edx + 5], 0xe3
mov byte [edx + 6], 0x7e
mov byte [edx + 7], 0xdd
mov byte [edx + 8], 0x48
mov byte [edx + 9], 0xdf
mov byte [edx + 0xa], 0x4a
mov byte [edx + 0xb], 0xd9
mov byte [edx + 0xc], 0x95
mov byte [edx + 0xd], 0xdb
mov byte [edx + 0xe], 0x88
mov byte [edx + 0xf], 0xd5
mov byte [edx + 0x10], 0xd4
mov byte [edx + 0x11], 0xd7
mov eax, 0x12
mov edi, dword [esi + 4]
mov byte [edx + eax], 0
add eax, 1
cmp eax, 0x14
jne 0x418360
mov dword [esi + 0x90], 0
mov eax, dword [esi + 0x90]
cmp eax, 0x14
jae 0x4183c1
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x90]
movzx ecx, byte [edx + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041af70
mov edx, dword [esi + 0x1c4]
add esp, 8
mov ecx, dword [esi + 0x90]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x90]
inc eax
mov dword [esi + 0x90], eax
jmp 0x418376
sub esp, 8
mov dword [esp + 4], edx
mov dword [esi + 8], ebx
mov dword [esp], ebx
call fcn.0040f420
add esp, 8
mov word [eax], 0x20
mov ecx, eax
add ecx, 4
mov word [eax + 2], 0x22
sub esp, 8
mov dword [esp + 4], edi
mov dword [esp], ecx
call fcn.0040f420
add esp, 8
mov ecx, eax
add ecx, 2
mov ebx, ecx
mov word [eax], 0x22
mov dword [esi + 0x668], 0
mov eax, dword [esi + 0x66c]
mov ecx, dword [esi + 0x668]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x888], 0
mov eax, dword [esi + 0x88c]
mov ecx, dword [esi + 0x888]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx]
mov edx, dword [edi]
xor edi, edi
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.00444050
add esp, 0x10
mov ebx, eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov dword [esi + 0x24c], eax
mov al, byte [esi + 0x110]
mov byte [esi + 0x184], al
mov byte [esi + 0x114], 0x9d
mov byte [esi + 0x115], 0x9a
mov byte [esi + 0x116], 0x9b
mov byte [esi + 0x117], 0x98
mov eax, 4
mov byte [esi + eax + 0x114], 0
add eax, 1
cmp eax, 5
jne 0x4184a5
mov dword [esi + 0x44], 0
mov eax, dword [esi + 0x44]
cmp eax, 5
jae 0x4184f7
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x44]
movzx ecx, byte [esi + ecx + 0x114]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041abd0
add esp, 8
mov ecx, dword [esi + 0x44]
mov byte [esi + ecx + 0x114], al
mov eax, dword [esi + 0x44]
inc eax
mov dword [esi + 0x44], eax
jmp 0x4184bc
mov ecx, dword [esi + 0x114]
xor edi, edi
cmp edi, dword [0x4505bc]
jb 0x418509
jmp 0x41856f
mov eax, dword [0x4505c0]
cmp dword [eax + edi*8], 0x625b6034
sete dl
test dl, 1
jne 0x41851f
jmp 0x418563
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x418563
mov dword [esi + 0x22c], ecx
mov ecx, dword [0x4505c4]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esi + 0x24c]
mov dword [esp + 0xc], eax
mov byte [esi + 0x22], dl
call fcn.004403a0
mov dl, byte [esi + 0x22]
mov ecx, dword [esi + 0x22c]
add esp, 0x10
test dl, 1
je 0x41856a
jmp 0x41856f
add edi, 1
jmp 0x4184ff
call fcn.0041b030
call fcn.0041b030
add byte [eax], al
mov eax, dword [esi + 0x6c0]
mov ecx, dword [esi + 0x6c4]
mov eax, dword [ecx + eax*4]
jmp eax
sub byte [edi + 0x3b], bl
loopne 0x418577
invalid
mov eax, dword [esi + 0x4d0]
mov ecx, dword [esi + 0x4d4]
mov eax, dword [ecx + eax*4]
jmp eax
mov cl, al
and ecx, 1
mov dword [esi + 0x860], ecx
mov eax, dword [esi + 0x864]
mov ecx, dword [esi + 0x860]
mov eax, dword [eax + ecx*4]
mov edi, dword [esi + 0x2b4]
jmp eax
call fcn.0041b030
mov ecx, edi
xor ecx, 1
mov edx, dword [esi + 0x18]
xor edx, 2
xor eax, eax
or ecx, edx
sete cl
mov dword [esi + 0x590], 1
mov edx, dword [esi + 0x594]
mov edi, dword [esi + 0x590]
mov edx, dword [edx + edi*4]
mov edi, dword [esi + 0x1a8]
jmp edx
pop ecx
mov bl, 0xf7
push es
sub esp, 4
mov dword [esp], edi
call fcn.0040c650
add esp, 4
mov eax, dword [esi + 0x310]
mov ecx, dword [esi + 0x314]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
sub esp, 4
mov dword [esp], edi
call fcn.0040c650
add esp, 4
mov dword [esi + 0x560], 1
mov eax, dword [esi + 0x564]
mov ecx, dword [esi + 0x560]
mov eax, dword [eax + ecx*4]
jmp eax
xor eax, eax
mov ecx, dword [esi + 0x18]
sub ecx, 1
sete cl
mov edx, dword [esi + 0x6a8]
mov edi, dword [esi + 0x6ac]
mov edx, dword [edi + edx*4]
mov edi, dword [esi + 4]
jmp edx
call fcn.0041b030
mov edi, ebx
add edi, 2
mov dword [esi + 0x618], 0
mov eax, dword [esi + 0x61c]
mov ecx, dword [esi + 0x618]
mov eax, dword [eax + ecx*4]
jmp eax
mov dword [esi + 0x1c], edi
call fcn.0041b030
mov dword [esi + 0x870], 0
mov eax, dword [esi + 0x874]
mov ecx, dword [esi + 0x870]
mov eax, dword [eax + ecx*4]
jmp eax
sub esp, 4
mov eax, dword [esi + 4]
mov dword [esp], eax
call fcn.0040c650
add esp, 4
mov eax, dword [esi + 0x418]
mov ecx, dword [esi + 0x41c]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x7c8], 0
mov eax, dword [esi + 0x7cc]
mov ecx, dword [esi + 0x7c8]
mov eax, dword [eax + ecx*4]
jmp eax
mov ebx, edi
call fcn.0041b030
mov dword [esi + 0x620], 1
mov eax, dword [esi + 0x624]
mov ecx, dword [esi + 0x620]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x270]
mov al, byte [eax]
mov byte [esi + 0x158], al
mov edx, dword [esi + 0x1cc]
mov byte [edx], 0xde
mov byte [edx + 1], 0xc7
mov byte [edx + 2], 0x32
mov eax, 3
mov byte [edx + eax], 0
add eax, 1
cmp eax, 5
jne 0x418829
mov dword [esi + 0x88], 0
mov eax, dword [esi + 0x88]
cmp eax, 5
jae 0x41888a
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x88]
movzx ecx, byte [edx + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041aef0
mov edx, dword [esi + 0x1cc]
add esp, 8
mov ecx, dword [esi + 0x88]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x88]
inc eax
mov dword [esi + 0x88], eax
jmp 0x41883f
sub esp, 8
mov eax, dword [esi + 0x14]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004044f0
add esp, 8
mov ebx, eax
mov eax, dword [esi + 0x26c]
mov al, byte [eax]
mov byte [esi + 0x15c], al
mov edx, dword [esi + 0x1c8]
mov byte [edx], 0x61
mov byte [edx + 1], 0x53
mov byte [edx + 2], 0xc2
mov eax, 3
mov byte [edx + eax], 0
add eax, 1
cmp eax, 6
jne 0x4188c5
mov dword [esi + 0x8c], 0
mov eax, dword [esi + 0x8c]
cmp eax, 6
jae 0x418926
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x8c]
movzx ecx, byte [edx + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041af50
mov edx, dword [esi + 0x1c8]
add esp, 8
mov ecx, dword [esi + 0x8c]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x8c]
inc eax
mov dword [esi + 0x8c], eax
jmp 0x4188db
sub esp, 8
mov dword [esp + 4], edx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call fcn.004044f0
add esp, 8
mov dword [esi + 0x28], eax
sub esp, 4
mov dword [esp], edi
call fcn.0041ab70
add esp, 4
mov ecx, ebx
mov ebx, eax
mov dword [esi + 0x1b4], ecx
test ecx, ecx
setne al
mov byte [esi + 0x26], al
movzx eax, al
mov dword [esi + 0x698], eax
mov eax, dword [esi + 0x69c]
mov ecx, dword [esi + 0x698]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0xc4], 0
jmp eax
lahf
clc
cmp dword [eax + 0x2221f2f3], ebx
sub esp, 0xc
mov dword [esp + 4], edi
mov eax, dword [esi + 0x14]
mov dword [esp], eax
mov dword [esp + 8], 3
call fcn.00404770
add esp, 0xc
mov eax, dword [esi + 0x3a8]
mov ecx, dword [esi + 0x3ac]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x670]
mov ecx, dword [esi + 0x674]
mov eax, dword [ecx + eax*4]
jmp eax
xor eax, eax
test edx, edx
sete al
mov dword [esi + 0x510], eax
mov eax, dword [esi + 0x514]
mov ecx, dword [esi + 0x510]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
sub esp, 0xc
mov dword [esp + 4], edi
mov eax, dword [esi + 0x14]
mov dword [esp], eax
mov dword [esp + 8], 3
call fcn.00404770
add esp, 0xc
mov ebx, eax
mov dword [esi + 0x848], 0
mov eax, dword [esi + 0x84c]
mov ecx, dword [esi + 0x848]
mov eax, dword [eax + ecx*4]
jmp eax
popal
jmp 0xba01bbcc
mov byte [esi + 0xf], bl
call fcn.0041b030
mov dword [esi + 0x598], 1
mov eax, dword [esi + 0x59c]
mov ecx, dword [esi + 0x598]
mov eax, dword [eax + ecx*4]
jmp eax
mov edx, dword [esi + 0x828]
mov edi, dword [esi + 0x82c]
mov edx, dword [edi + edx*4]
jmp edx
add dword [esi], ecx
dec ecx
mov dl, byte [ecx]
lea ebp, [esi + edx*4 - 0x75]
inc esi
adc byte [ebx - 0x7c36cf00], cl
in al, dx
or byte [ecx + 0x44c72404], cl
and al, 4
add byte [eax], al
add byte [eax], al
call fcn.0041ab90
add esp, 8
mov ebx, eax
sub ebx, 0x8fd60eef
add ebx, 1
add ebx, 0x8fd60eef
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x418b4a
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c640
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x10]
mov edx, dword [eax]
mov edi, edx
mov eax, dword [esi + 0x30]
add edi, dword [eax]
shl ebx, 1
mov dword [esi + 0x1ac], ecx
add ecx, ebx
mov dword [esi + 0x238], ecx
cmp edi, 0
mov dword [esi + 0xac], edx
jne 0x418b97
sub esp, 4
mov dword [esp], edx
call fcn.0040c780
add esp, 4
mov edi, dword [esi + 0xac]
add edi, eax
mov dword [esi + 0x1f4], 0
mov ebx, dword [esi + 0x1ac]
call fcn.0041b030
call fcn.0041b030
mov eax, dword [esi + 0x238]
add eax, 0xfffffffe
mov ecx, ebx
sub ecx, eax
setb al
mov edx, dword [esi + 0xac]
mov ecx, edx
sub ecx, edi
setb cl
and al, cl
test al, 1
jne 0x418bd6
jmp 0x418c15
cmp byte [edx], 0
je 0x418c15
lea eax, [esi + 0x1f4]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esi + 0xac], edx
call fcn.00410fa0
add esp, 0xc
add dword [esi + 0xac], eax
mov eax, dword [esi + 0x1f4]
mov ecx, ebx
add ecx, 2
mov word [ebx], ax
mov ebx, ecx
jmp 0x418ba7
mov word [ebx], 0
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
mov eax, ecx
and eax, 0x18
or ecx, 0x18
add eax, ecx
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x418c4b
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c640
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x1bc]
mov al, byte [eax]
mov byte [esi + 0x16c], al
mov ecx, dword [esi + 0xb4]
mov byte [ecx], 0xd4
mov byte [ecx + 1], 0x47
mov byte [ecx + 2], 0xd7
mov byte [ecx + 3], 0x41
mov byte [ecx + 4], 0xd9
mov byte [ecx + 5], 0x43
mov byte [ecx + 6], 0xad
mov byte [ecx + 7], 0x4d
mov byte [ecx + 8], 0xde
mov byte [ecx + 9], 0x4f
mov byte [ecx + 0xa], 0xd3
mov byte [ecx + 0xb], 0x49
mov byte [ecx + 0xc], 0xa0
mov byte [ecx + 0xd], 0x4b
mov byte [ecx + 0xe], 0xa5
mov byte [ecx + 0xf], 0x75
mov byte [ecx + 0x10], 0xe0
mov byte [ecx + 0x11], 0x77
mov byte [ecx + 0x12], 0xe2
mov byte [ecx + 0x13], 0x71
mov byte [ecx + 0x14], 0x50
mov byte [ecx + 0x15], 0x73
mov byte [ecx + 0x16], 0xa5
mov byte [ecx + 0x17], 0x7d
mov byte [ecx + 0x18], 0x93
mov byte [ecx + 0x19], 0x7f
mov byte [ecx + 0x1a], 0xe6
mov byte [ecx + 0x1b], 0x79
mov byte [ecx + 0x1c], 0x97
mov byte [ecx + 0x1d], 0x7b
mov byte [ecx + 0x1e], 0x97
mov byte [ecx + 0x1f], 0x65
mov byte [ecx + 0x20], 0x44
mov byte [ecx + 0x21], 0x67
mov byte [ecx + 0x22], 0x84
mov byte [ecx + 0x23], 0x61
mov byte [ecx + 0x24], 0xfb
mov byte [ecx + 0x25], 0x63
mov byte [ecx + 0x26], 0xf2
mov byte [ecx + 0x27], 0x6d
mov byte [ecx + 0x28], 0x8f
mov byte [ecx + 0x29], 0x6f
mov byte [ecx + 0x2a], 0xf3
mov byte [ecx + 0x2b], 0x69
mov byte [ecx + 0x2c], 0xf5
mov byte [ecx + 0x2d], 0x6b
mov byte [ecx + 0x2e], 0x4a
mov byte [ecx + 0x2f], 0x15
mov byte [ecx + 0x30], 0x14
mov byte [ecx + 0x31], 0x17
mov eax, 0x32
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0x34
jne 0x418d3b
mov dword [esi + 0xa0], 0
mov eax, dword [esi + 0xa0]
cmp eax, 0x34
jae 0x418d9c
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0xa0]
mov edi, dword [esi + 0xb4]
movzx ecx, byte [edi + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041aff0
add esp, 8
mov ecx, dword [esi + 0xa0]
mov byte [edi + ecx], al
mov eax, dword [esi + 0xa0]
inc eax
mov dword [esi + 0xa0], eax
jmp 0x418d51
sub esp, 8
mov eax, dword [esi + 0xb4]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0040f420
mov ecx, dword [esi + 0x1ac]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0040f420
add esp, 8
mov eax, dword [esi + 0x318]
mov ecx, dword [esi + 0x31c]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x3c8], 0
mov eax, dword [esi + 0x3cc]
mov ecx, dword [esi + 0x3c8]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
sub esp, 4
mov dword [esp], edi
call fcn.0040c780
add esp, 4
mov ecx, eax
and ecx, 1
xor eax, 1
lea edx, [eax + ecx*2]
mov dword [esi + 0x678], 1
mov eax, dword [esi + 0x67c]
mov ecx, dword [esi + 0x678]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x4d8], 1
mov eax, dword [esi + 0x4dc]
mov ecx, dword [esi + 0x4d8]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x710], 0
mov eax, dword [esi + 0x714]
mov ecx, dword [esi + 0x710]
mov eax, dword [eax + ecx*4]
mov ebx, dword [esi + 4]
jmp eax
cmp dword [esi + 2], edi
test edx, 0x8b64a697
xchg al, bl
add al, byte [eax]
add byte [ebx + 0x2dc8e], cl
add byte [ebx - 0x1f007efc], cl
invalid
call fcn.0041b030
mov dword [esi + 0x880], 0
mov eax, dword [esi + 0x884]
mov ecx, dword [esi + 0x880]
mov eax, dword [eax + ecx*4]
jmp eax
sub esp, 4
mov eax, dword [esi + 0x1b4]
mov dword [esp], eax
call fcn.0040c780
add esp, 4
inc eax
mov dword [esi + 0xc4], eax
mov eax, dword [esi + 0x690]
mov ecx, dword [esi + 0x694]
mov eax, dword [ecx + eax*4]
jmp eax
movzx eax, bl
and eax, 1
mov dword [esi + 0x7a8], eax
mov eax, dword [esi + 0x7ac]
mov ecx, dword [esi + 0x7a8]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.0040c650
add esp, 4
mov dword [esi + 0x400], 1
mov eax, dword [esi + 0x404]
mov ecx, dword [esi + 0x400]
mov eax, dword [eax + ecx*4]
jmp eax
invalid
xor eax, eax
mov cl, byte [esi + 0xf]
mov al, cl
and eax, 1
mov dword [esi + 0x508], eax
mov eax, dword [esi + 0x50c]
mov ecx, dword [esi + 0x508]
mov eax, dword [eax + ecx*4]
jmp eax
and bl, 1
movzx eax, bl
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
mov ecx, 0x11
mov ebx, dword [esi + 0x258]
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x4a0]
mov ecx, dword [esi + 0x4a4]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x530]
mov ecx, dword [esi + 0x534]
mov eax, dword [ecx + eax*4]
mov edx, dword [esi + 0x18]
jmp eax
mov eax, dword [esi + 0x330]
mov ecx, dword [esi + 0x334]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x4a8]
mov ecx, dword [esi + 0x4ac]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, cl
and eax, 1
mov dword [esi + 0x700], eax
mov eax, dword [esi + 0x704]
mov ecx, dword [esi + 0x700]
mov eax, dword [eax + ecx*4]
mov edi, dword [esi + 0x2c]
jmp eax
mov eax, dword [esi + 0x7f8]
mov ecx, dword [esi + 0x7fc]
mov eax, dword [ecx + eax*4]
jmp eax
xor eax, eax
mov cl, byte [esi + 0x27]
mov al, cl
and eax, 1
mov dword [esi + 0x628], eax
mov eax, dword [esi + 0x62c]
mov ecx, dword [esi + 0x628]
mov eax, dword [eax + ecx*4]
jmp eax
mov cl, dl
and ecx, 1
mov dword [esi + 0x440], ecx
mov ecx, dword [esi + 0x444]
mov edx, dword [esi + 0x440]
mov ecx, dword [ecx + edx*4]
jmp ecx
call fcn.0041b030
sub esp, 8
mov ebx, esp
push eax
mov dword [esi + 0x1ec], esp
sub esp, 8
mov dword [esi + 0x2b4], esp
push eax
mov dword [esi + 0x2b0], esp
mov dword [esi + 0x8c0], 0
mov eax, dword [esi + 0x8c4]
mov ecx, dword [esi + 0x8c0]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x770]
mov ecx, dword [esi + 0x774]
mov eax, dword [ecx + eax*4]
xor edx, edx
mov edi, dword [esi + 0x1e0]
jmp eax
call fcn.0041b030
mov eax, dword [0x4505b0]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x46483752
call fcn.00442e70
add esp, 8
mov edi, eax
call fcn.0041b030
call fcn.0041b030
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
sub esp, 0x18
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x4246c0
mov dword [esp + 4], 0
mov dword [esp], 0
call edi
xor ecx, ecx
test eax, eax
setne dl
mov dword [esi + 0x4c0], 1
mov edi, dword [esi + 0x4c4]
mov ebx, dword [esi + 0x4c0]
mov edi, dword [edi + ebx*4]
jmp edi
sbb eax, 0x931cb504
stosd dword es:[edi], eax
adc al, 0x75
mov eax, dword [esi + 0x3b8]
mov ecx, dword [esi + 0x3bc]
mov eax, dword [ecx + eax*4]
jmp eax
and eax, 0x8b5eef80
xchg byte [eax + 3], al
add byte [eax], al
mov ecx, dword [esi + 0x344]
mov eax, dword [ecx + eax*4]
jmp eax
mov cl, al
and ecx, 1
mov dword [esi + 0x4f0], ecx
mov eax, dword [esi + 0x4f4]
mov ecx, dword [esi + 0x4f0]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, byte [esi + 0x25]
mov bl, al
and ebx, 1
mov dword [esi + 0x720], ebx
mov eax, dword [esi + 0x724]
mov ecx, dword [esi + 0x720]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x680], 1
mov eax, dword [esi + 0x684]
mov ecx, dword [esi + 0x680]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x7e0]
mov ecx, dword [esi + 0x7e4]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x5e8]
mov ecx, dword [esi + 0x5ec]
mov eax, dword [ecx + eax*4]
xor ebx, ebx
mov dword [esi + 0x18], 0
jmp eax
mov eax, dword [esi + 0x458]
mov ecx, dword [esi + 0x45c]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x878]
mov ecx, dword [esi + 0x87c]
mov eax, dword [ecx + eax*4]
mov bl, 1
jmp eax
call fcn.0041b030
mov dword [esi + 0x638], 1
mov eax, dword [esi + 0x63c]
mov ecx, dword [esi + 0x638]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, cl
and eax, 1
mov dword [esi + 0x5a0], eax
mov eax, dword [esi + 0x5a4]
mov ecx, dword [esi + 0x5a0]
mov eax, dword [eax + ecx*4]
mov ebx, dword [esi + 0xbc]
mov edi, dword [esi + 0x1c]
jmp eax
das
out dx, al
outsd dx, dword [esi]
pop dword [ebx + 0x3c8904ec]
and al, 0xe8
in al, 0x34
invalid
call fcn.0041b030
mov dword [esi + 0x750], 1
mov eax, dword [esi + 0x754]
mov ecx, dword [esi + 0x750]
mov eax, dword [eax + ecx*4]
mov ebx, dword [esi + 4]
jmp eax
mov eax, dword [esi + 0x278]
mov al, byte [eax]
mov byte [esi + 0x150], al
mov edx, dword [esi + 0x1d4]
mov byte [edx], 0x3e
mov byte [edx + 1], 0xb
mov byte [edx + 2], 0xf6
mov byte [edx + 3], 9
mov byte [edx + 4], 0xfc
mov byte [edx + 5], 7
mov byte [edx + 6], 0xf2
mov byte [edx + 7], 5
mov byte [edx + 8], 4
mov byte [edx + 9], 3
mov eax, 0xa
mov ebx, dword [esi + 4]
mov byte [edx + eax], 0
add eax, 1
cmp eax, 0xc
jne 0x41934a
mov dword [esi + 0x80], 0
mov edi, dword [esi + 0x2c]
mov eax, dword [esi + 0x80]
cmp eax, 0xc
jae 0x4193ae
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x80]
movzx ecx, byte [edx + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041ae80
mov edx, dword [esi + 0x1d4]
add esp, 8
mov ecx, dword [esi + 0x80]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x80]
inc eax
mov dword [esi + 0x80], eax
jmp 0x419363
sub esp, 8
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0041ab20
add esp, 8
mov eax, dword [esi + 0x718]
mov ecx, dword [esi + 0x71c]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
xor eax, eax
test edi, edi
sete cl
mov dword [esi + 0x5a8], 0
mov edx, dword [esi + 0x5ac]
mov ebx, dword [esi + 0x5a8]
mov edx, dword [edx + ebx*4]
jmp edx
call fcn.0041b030
test edi, edi
sete bl
mov dword [esi + 0x7b0], 0
mov eax, dword [esi + 0x7b4]
mov ecx, dword [esi + 0x7b0]
mov eax, dword [eax + ecx*4]
jmp eax
pop ecx
mov esi, 0x639987ca
cmp eax, 0x68868b54
add eax, dword [eax]
add byte [ebx + 0x36c8e], cl
add byte [ebx - 0x1f007efc], cl
call fcn.0041b030
mov dword [esi + 0x6e8], 0
mov eax, dword [esi + 0x6ec]
mov ecx, dword [esi + 0x6e8]
mov eax, dword [eax + ecx*4]
jmp eax
xor eax, eax
cmp dword [esi + 8], 0
sete al
mov dword [esi + 0x410], eax
mov eax, dword [esi + 0x414]
mov ecx, dword [esi + 0x410]
mov eax, dword [eax + ecx*4]
mov edi, dword [esi + 0x1c]
jmp eax
call fcn.0041b030
xor eax, eax
cmp dword [esi + 4], 0
sete cl
mov dword [esi + 0x428], 1
mov edx, dword [esi + 0x42c]
mov edi, dword [esi + 0x428]
mov edx, dword [edx + edi*4]
jmp edx
call fcn.0041b030
mov dword [esi + 0x658], 0
mov eax, dword [esi + 0x65c]
mov ecx, dword [esi + 0x658]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x610]
mov ecx, dword [esi + 0x614]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x6f0], 1
mov eax, dword [esi + 0x6f4]
mov ecx, dword [esi + 0x6f0]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x2b0]
mov al, byte [eax]
mov byte [esi + 0x124], al
mov byte [edi], 0x92
mov byte [edi + 1], 0xad
mov byte [edi + 2], 0x3e
mov eax, 3
mov byte [edi + eax], 0
add eax, 1
cmp eax, 5
jne 0x419562
mov dword [esi + 0x54], 0
mov eax, dword [esi + 0x54]
cmp eax, 5
jae 0x4195a8
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x54]
movzx ecx, byte [edi + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041ac40
add esp, 8
mov ecx, dword [esi + 0x54]
mov byte [edi + ecx], al
mov eax, dword [esi + 0x54]
inc eax
mov dword [esi + 0x54], eax
jmp 0x419575
mov dword [esi + 0xbc], ebx
mov eax, dword [esi + 0x858]
mov ecx, dword [esi + 0x85c]
mov eax, dword [ecx + eax*4]
jmp eax
sub esp, 4
mov dword [esp], edi
call fcn.0040c780
add esp, 4
mov ecx, edi
add ecx, eax
sub esp, 8
mov dword [esi + 0x250], edi
mov dword [esp], edi
mov dword [esi + 0xb0], ecx
mov dword [esp + 4], ecx
call fcn.0041a760
add esp, 8
mov ebx, eax
and ebx, 1
mov dword [esi + 0x1a4], eax
or eax, 1
add ebx, eax
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41962a
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c640
add esp, 4
mov edi, eax
shl ebx, 1
mov eax, edi
add eax, ebx
mov dword [esi + 0x23c], eax
cmp dword [esi + 0xb0], 0
mov ebx, dword [esi + 0x250]
jne 0x41966d
sub esp, 4
mov dword [esp], ebx
call fcn.0040c780
add esp, 4
mov ecx, ebx
add ecx, eax
mov dword [esi + 0xb0], ecx
mov dword [esi + 0x204], 0
mov dword [esi + 0x1a0], edi
call fcn.0041b030
call fcn.0041b030
mov eax, dword [esi + 0x23c]
add eax, 0xfffffffe
mov ecx, edi
sub ecx, eax
setb al
mov ecx, ebx
sub ecx, dword [esi + 0xb0]
setb cl
and al, cl
test al, 1
jne 0x4196aa
jmp 0x4196e5
cmp byte [ebx], 0
je 0x4196e5
lea eax, [esi + 0x204]
sub esp, 0xc
mov dword [esp], ebx
mov ecx, dword [esi + 0xb0]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00410fa0
add esp, 0xc
add ebx, eax
mov eax, dword [esi + 0x204]
mov ecx, edi
add ecx, 2
mov word [edi], ax
mov edi, ecx
jmp 0x41967d
mov word [edi], 0
mov eax, dword [0x4505b8]
sub esp, 0x18
mov edi, dword [esi + 0x1e8]
mov dword [esp + 0x14], edi
mov ecx, dword [esi + 0x1a4]
mov dword [esp + 8], ecx
mov ecx, dword [esi + 0x1a0]
mov dword [esp + 4], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0
call eax
mov ecx, dword [edi]
add ecx, ecx
mov eax, 0xffffffff
jb 0x419736
mov eax, ecx
sub esp, 4
mov dword [esp], eax
call fcn.0040c640
add esp, 4
mov edi, dword [0x4505b8]
mov edx, dword [esi + 0x1e8]
mov ecx, dword [edx]
sub esp, 0x18
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
mov dword [esi + 4], eax
mov dword [esp + 0xc], eax
mov ecx, dword [esi + 0x1a4]
mov dword [esp + 8], ecx
mov ebx, dword [esi + 0x1a0]
mov dword [esp + 4], ebx
mov dword [esp], 0
call edi
mov dword [esi + 0x798], 0
mov eax, dword [esi + 0x79c]
mov ecx, dword [esi + 0x798]
mov eax, dword [eax + ecx*4]
mov edi, dword [esi + 0x2c]
jmp eax
call fcn.0041b030
mov dword [esi + 0x480], 1
mov eax, dword [esi + 0x484]
mov ecx, dword [esi + 0x480]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x3f0]
mov ecx, dword [esi + 0x3f4]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x500], 1
mov eax, dword [esi + 0x504]
mov ecx, dword [esi + 0x500]
mov eax, dword [eax + ecx*4]
jmp eax
push cs
sbb byte [edx + edi*8], 0x8b
xchg ah, ah
add dword [eax], eax
add byte [edx + 0x3c868800], cl
add dword [eax], eax
add dh, al
pop es
pushal
mov byte [edi + 1], 0x61
mov byte [edi + 2], 0x6c
mov byte [edi + 3], 0xec
mov eax, 4
mov byte [edi + eax], 0
add eax, 1
cmp eax, 5
jne 0x419816
mov dword [esi + 0x70], 0
mov eax, dword [esi + 0x70]
cmp eax, 5
jae 0x41985c
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0x70]
movzx ecx, byte [edi + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041adb0
add esp, 8
mov ecx, dword [esi + 0x70]
mov byte [edi + ecx], al
mov eax, dword [esi + 0x70]
inc eax
mov dword [esi + 0x70], eax
jmp 0x419829
mov eax, dword [edi]
mov eax, dword [eax + 0x14]
sub esp, 4
mov dword [esp], eax
call fcn.0040ccf0
add esp, 4
call fcn.0040cd00
mov eax, dword [esi + 0x388]
mov ecx, dword [esi + 0x38c]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x728], 1
mov eax, dword [esi + 0x72c]
mov ecx, dword [esi + 0x728]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
xor ecx, ecx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.0041ab90
add esp, 8
mov ebx, eax
sub ebx, 0x919435ea
add ebx, 1
add ebx, 0x919435ea
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4198eb
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c640
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x10]
mov edx, dword [eax]
mov edi, edx
mov eax, dword [esi + 0x30]
add edi, dword [eax]
shl ebx, 1
mov dword [esi + 0x1b0], ecx
add ecx, ebx
mov dword [esi + 0x234], ecx
cmp edi, 0
mov dword [esi + 0xa8], edx
jne 0x419938
sub esp, 4
mov dword [esp], edx
call fcn.0040c780
add esp, 4
mov edi, dword [esi + 0xa8]
add edi, eax
mov dword [esi + 0x1f8], 0
mov ebx, dword [esi + 0x1b0]
call fcn.0041b030
call fcn.0041b030
mov eax, dword [esi + 0x234]
add eax, 0xfffffffe
mov ecx, ebx
sub ecx, eax
setb al
mov edx, dword [esi + 0xa8]
mov ecx, edx
sub ecx, edi
setb cl
and al, cl
test al, 1
jne 0x419977
jmp 0x4199b6
cmp byte [edx], 0
je 0x4199b6
lea eax, [esi + 0x1f8]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esi + 0xa8], edx
call fcn.00410fa0
add esp, 0xc
add dword [esi + 0xa8], eax
mov eax, dword [esi + 0x1f8]
mov ecx, ebx
add ecx, 2
mov word [ebx], ax
mov ebx, ecx
jmp 0x419948
mov word [ebx], 0
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
add ecx, 0x18
mov eax, ecx
and eax, 1
or ecx, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4199e3
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c640
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x1bc]
mov al, byte [eax]
mov byte [esi + 0x170], al
mov edi, dword [esi + 0xb4]
mov byte [edi], 0xd4
mov byte [edi + 1], 0x47
mov byte [edi + 2], 0xd7
mov byte [edi + 3], 0x41
mov byte [edi + 4], 0xd9
mov byte [edi + 5], 0x43
mov byte [edi + 6], 0xad
mov byte [edi + 7], 0x4d
mov byte [edi + 8], 0xde
mov byte [edi + 9], 0x4f
mov byte [edi + 0xa], 0xd3
mov byte [edi + 0xb], 0x49
mov byte [edi + 0xc], 0xa0
mov byte [edi + 0xd], 0x4b
mov byte [edi + 0xe], 0xa5
mov byte [edi + 0xf], 0x75
mov byte [edi + 0x10], 0xe0
mov byte [edi + 0x11], 0x77
mov byte [edi + 0x12], 0xe2
mov byte [edi + 0x13], 0x71
mov byte [edi + 0x14], 0x50
mov byte [edi + 0x15], 0x73
mov byte [edi + 0x16], 0xa5
mov byte [edi + 0x17], 0x7d
mov byte [edi + 0x18], 0x93
mov byte [edi + 0x19], 0x7f
mov byte [edi + 0x1a], 0xe6
mov byte [edi + 0x1b], 0x79
mov byte [edi + 0x1c], 0x97
mov byte [edi + 0x1d], 0x7b
mov byte [edi + 0x1e], 0x97
mov byte [edi + 0x1f], 0x65
mov byte [edi + 0x20], 0x44
mov byte [edi + 0x21], 0x67
mov byte [edi + 0x22], 0x84
mov byte [edi + 0x23], 0x61
mov byte [edi + 0x24], 0xfb
mov byte [edi + 0x25], 0x63
mov byte [edi + 0x26], 0xf2
mov byte [edi + 0x27], 0x6d
mov byte [edi + 0x28], 0x8f
mov byte [edi + 0x29], 0x6f
mov byte [edi + 0x2a], 0xf3
mov byte [edi + 0x2b], 0x69
mov byte [edi + 0x2c], 0xf5
mov byte [edi + 0x2d], 0x6b
mov byte [edi + 0x2e], 0x4a
mov byte [edi + 0x2f], 0x15
mov byte [edi + 0x30], 0x14
mov byte [edi + 0x31], 0x17
mov eax, 0x32
mov byte [edi + eax], 0
add eax, 1
cmp eax, 0x34
jne 0x419ad3
mov dword [esi + 0x9c], 0
mov eax, dword [esi + 0x9c]
cmp eax, 0x34
jae 0x419b2e
mov eax, dword [esi + 0x9c]
mov ecx, dword [esi + 0x9c]
movzx ecx, byte [edi + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041aff0
add esp, 8
mov ecx, dword [esi + 0x9c]
mov byte [edi + ecx], al
mov eax, dword [esi + 0x9c]
inc eax
mov dword [esi + 0x9c], eax
jmp 0x419ae9
sub esp, 8
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.0040f420
mov edi, dword [esi + 0x1b0]
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0040f420
add esp, 8
mov dword [esi + 0x578], 0
mov eax, dword [esi + 0x57c]
mov ecx, dword [esi + 0x578]
mov eax, dword [eax + ecx*4]
jmp eax
xor ebx, ebx
mov eax, dword [esi + 0x18]
sub eax, 2
sete byte [esi + 0x23]
mov eax, dword [esi + 0x5e0]
mov ecx, dword [esi + 0x5e4]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x390]
mov ecx, dword [esi + 0x394]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x350]
mov ecx, dword [esi + 0x354]
mov eax, dword [ecx + eax*4]
jmp eax
mov byte [0x68c0a2ed], al
wait
push cs
jecxz 0x419b5c
xchg al, bh
add al, byte [eax]
add byte [ebx + 0x2fc8e], cl
add byte [ebx - 0x1f007efc], cl
mov eax, dword [esi + 0x1d8]
mov al, byte [eax]
mov byte [esi + 0x14c], al
mov byte [edi], 0xc2
mov byte [edi + 1], 0x1f
mov byte [edi + 2], 0xf9
mov byte [edi + 3], 0x11
mov byte [edi + 4], 0x98
mov byte [edi + 5], 0x13
mov byte [edi + 6], 0xf5
mov byte [edi + 7], 0x15
mov byte [edi + 8], 0x14
mov byte [edi + 9], 0x17
mov eax, 0xa
add dh, al
add al, 7
add byte [ebx - 0x77cfe40], al
pcmpeqw mm6, mm4
mov byte [edi + eax], 0
add eax, 1
cmp eax, 0xf
jne 0x419c1b
mov dword [esi + 0x78], 0
mov eax, dword [esi + 0x78]
cmp eax, 0xf
jae 0x419c61
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x78]
movzx ecx, byte [edi + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041ae30
add esp, 8
mov ecx, dword [esi + 0x78]
mov byte [edi + ecx], al
mov eax, dword [esi + 0x78]
inc eax
mov dword [esi + 0x78], eax
jmp 0x419c2e
sub esp, 8
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.0041ab20
add esp, 8
mov dword [esi + 0x748], 1
mov eax, dword [esi + 0x74c]
mov ecx, dword [esi + 0x748]
mov eax, dword [eax + ecx*4]
jmp eax
mov bh, bh
loopne 0x419c1a
invalid
mov eax, dword [esi + 0x3e8]
mov ecx, dword [esi + 0x3ec]
mov eax, dword [ecx + eax*4]
jmp eax
xchg al, ch
add eax, dword [eax]
add byte [ebx + 0x3ec8e], cl
add byte [ebx - 0x1f007efc], cl
call fcn.0041b030
xor eax, eax
mov ecx, dword [esi + 0x18]
sub ecx, 2
sete cl
mov dword [esi + 0x708], 0
mov edx, dword [esi + 0x70c]
mov edi, dword [esi + 0x708]
mov edx, dword [edx + edi*4]
jmp edx
jg 0x419c8b
add ebp, esp
cld
insd dword es:[edi], dx
out dx, al
inc ebp
mov eax, dword [esi + 0x308]
mov ecx, dword [esi + 0x30c]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x4c8], 0
mov eax, dword [esi + 0x4cc]
mov ecx, dword [esi + 0x4c8]
mov eax, dword [eax + ecx*4]
jmp eax
sub esp, 4
mov dword [esp], ebx
call fcn.0041ab70
add esp, 4
add eax, 0x1d
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x419d36
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0040c640
add esp, 4
mov dword [esi + 8], eax
mov eax, dword [esi + 0x264]
mov al, byte [eax]
mov byte [esi + 0x164], al
mov edx, dword [esi + 0xd4]
mov byte [edx], 0x86
mov byte [edx + 1], 0x67
mov byte [edx + 2], 0x66
mov byte [edx + 3], 0x61
mov eax, 4
mov byte [edx + eax], 0
add eax, 1
cmp eax, 8
jne 0x419d6f
mov dword [esi + 0x98], 0
mov eax, dword [esi + 0x98]
cmp eax, 8
jae 0x419dd0
mov eax, dword [esi + 0x98]
mov ecx, dword [esi + 0x98]
movzx ecx, byte [edx + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041afc0
mov edx, dword [esi + 0xd4]
add esp, 8
mov ecx, dword [esi + 0x98]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x98]
inc eax
mov dword [esi + 0x98], eax
jmp 0x419d85
mov eax, dword [esi + 0x260]
mov al, byte [eax]
mov byte [esi + 0x168], al
mov edx, dword [esi + 0x1c0]
mov byte [edx], 0x58
mov byte [edx + 1], 0xc9
mov byte [edx + 2], 0x5d
mov byte [edx + 3], 0xcf
mov byte [edx + 4], 0x47
mov byte [edx + 5], 0xcd
mov byte [edx + 6], 0xa7
mov byte [edx + 7], 0xc3
mov byte [edx + 8], 0x56
mov byte [edx + 9], 0xc1
mov byte [edx + 0xa], 0x51
mov byte [edx + 0xb], 0xc7
mov byte [edx + 0xc], 0x5c
mov byte [edx + 0xd], 0xc5
mov byte [edx + 0xe], 0x9f
mov byte [edx + 0xf], 0xfb
mov byte [edx + 0x10], 0x64
mov byte [edx + 0x11], 0xf9
mov byte [edx + 0x12], 0x62
mov byte [edx + 0x13], 0xff
mov byte [edx + 0x14], 0xdc
mov byte [edx + 0x15], 0xfd
mov byte [edx + 0x16], 0xaf
mov byte [edx + 0x17], 0xf3
mov byte [edx + 0x18], 0x95
mov byte [edx + 0x19], 0xf1
mov byte [edx + 0x1a], 0x7e
mov byte [edx + 0x1b], 0xf7
mov byte [edx + 0x1c], 0x91
mov byte [edx + 0x1d], 0xf5
mov byte [edx + 0x1e], 0x8d
mov byte [edx + 0x1f], 0xeb
mov byte [edx + 0x20], 0xc8
mov byte [edx + 0x21], 0xe9
mov byte [edx + 0x22], 0x88
mov byte [edx + 0x23], 0xef
mov byte [edx + 0x24], 0x65
mov byte [edx + 0x25], 0xed
mov byte [edx + 0x26], 0x72
mov byte [edx + 0x27], 0xe3
mov byte [edx + 0x28], 0x81
mov byte [edx + 0x29], 0xe1
mov byte [edx + 0x2a], 0x71
mov byte [edx + 0x2b], 0xe7
mov byte [edx + 0x2c], 0x73
mov byte [edx + 0x2d], 0xe5
mov byte [edx + 0x2e], 0x3a
mov byte [edx + 0x2f], 0x1b
mov byte [edx + 0x30], 0x45
mov byte [edx + 0x31], 0x19
mov byte [edx + 0x32], 0x84
mov byte [edx + 0x33], 0x1f
mov byte [edx + 0x34], 0x3c
mov byte [edx + 0x35], 0x1d
mov byte [edx + 0x36], 0x34
mov byte [edx + 0x37], 0x13
mov byte [edx + 0x38], 0x10
mov byte [edx + 0x39], 0x11
mov eax, 0x3a
mov byte [edx + eax], 0
add eax, 1
cmp eax, 0x3e
jne 0x419ed0
mov dword [esi + 0x94], 0
mov eax, dword [esi + 0x94]
cmp eax, 0x3e
jae 0x419f31
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x94]
movzx ecx, byte [edx + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041afa0
mov edx, dword [esi + 0x1c0]
add esp, 8
mov ecx, dword [esi + 0x94]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x94]
inc eax
mov dword [esi + 0x94], eax
jmp 0x419ee6
sub esp, 8
mov dword [esp + 4], edx
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.0040f420
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0040f420
mov ecx, dword [esi + 0xd4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0040f420
add esp, 8
mov eax, dword [esi + 0x5c0]
mov ecx, dword [esi + 0x5c4]
mov eax, dword [ecx + eax*4]
jmp eax
sar dword [esi - 0x45eeca85], 0xb
stc
mov eax, dword [esi + 0x320]
mov ecx, dword [esi + 0x324]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x2c0]
mov ecx, dword [esi + 0x2c4]
mov eax, dword [ecx + eax*4]
jmp eax
xchg eax, eax
mov dl, 0xeb
retf 0xecbc
mov eax, dword [esi + 0x788]
mov ecx, dword [esi + 0x78c]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x898]
mov ecx, dword [esi + 0x89c]
mov eax, dword [ecx + eax*4]
xor edi, edi
jmp eax
mov eax, dword [esi + 0x1e4]
mov al, byte [eax]
mov byte [esi + 0x140], al
mov byte [edi], 0x60
mov byte [edi + 1], 0x61
mov byte [edi + 2], 0x6c
mov byte [edi + 3], 0xec
mov eax, 4
mov byte [edi + eax], 0
add eax, 1
cmp eax, 5
jne 0x41a12e
mov dword [esi + 0x6c], 0
mov eax, dword [esi + 0x6c]
cmp eax, 5
jae 0x41a174
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0x6c]
movzx ecx, byte [edi + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041adb0
add esp, 8
mov ecx, dword [esi + 0x6c]
mov byte [edi + ecx], al
mov eax, dword [esi + 0x6c]
inc eax
mov dword [esi + 0x6c], eax
jmp 0x41a141
mov eax, dword [edi]
mov eax, dword [eax + 0x14]
sub esp, 4
mov dword [esp], eax
call fcn.0040ccf0
add esp, 4
call fcn.0040cd00
mov ebx, eax
and ebx, 0xf
or ebx, 0x10
mov dword [esi + 0x778], 1
mov eax, dword [esi + 0x77c]
mov ecx, dword [esi + 0x778]
mov eax, dword [eax + ecx*4]
jmp eax
mov edi, dword [esi + 0x28]
test edi, edi
setne al
mov byte [esi + 0x27], al
movzx eax, al
mov dword [esi + 0x688], eax
mov eax, dword [esi + 0x68c]
mov ecx, dword [esi + 0x688]
mov eax, dword [eax + ecx*4]
xor edx, edx
jmp eax
mov eax, dword [esi + 0x540]
mov ecx, dword [esi + 0x544]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x408], 1
mov eax, dword [esi + 0x40c]
mov ecx, dword [esi + 0x408]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [esi + 0x1b8]
mov dword [ecx + 4], 0xffffffff
mov dword [ecx], 0xb8797400
mov cl, byte [esi + 0x174]
mov byte [esi + 0x180], cl
mov byte [esi + 0x178], 0x9d
mov byte [esi + 0x179], 0x9a
mov byte [esi + 0x17a], 0x9b
mov byte [esi + 0x17b], 0x98
mov ecx, 4
mov byte [esi + ecx + 0x178], 0
add ecx, 1
cmp ecx, 5
jne 0x41a247
mov dword [esi + 0x1f0], eax
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x48]
cmp eax, 5
jae 0x41a29f
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x48]
movzx ecx, byte [esi + ecx + 0x178]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041abd0
add esp, 8
mov ecx, dword [esi + 0x48]
mov byte [esi + ecx + 0x178], al
mov eax, dword [esi + 0x48]
inc eax
mov dword [esi + 0x48], eax
jmp 0x41a264
mov ecx, dword [esi + 0x178]
xor edi, edi
cmp edi, dword [0x4505bc]
jb 0x41a2b1
jmp 0x41a325
mov eax, dword [0x4505c0]
cmp dword [eax + edi*8], 0x7e28bda7
sete bl
test bl, 1
jne 0x41a2c7
jmp 0x41a319
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x41a319
mov dword [esi + 0x230], ecx
mov ecx, dword [0x4505c4]
xor edx, edx
sub esp, 0x18
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
mov eax, dword [esi + 0x1f0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov eax, dword [esi + 0x1b8]
mov dword [esp + 0x14], eax
call fcn.004403a0
mov ecx, dword [esi + 0x230]
add esp, 0x18
test bl, 1
je 0x41a320
jmp 0x41a325
add edi, 1
jmp 0x41a2a7
mov al, byte [esi + 0xf8]
mov byte [esi + 0x18c], al
mov byte [esi + 0xfc], 0x9d
mov byte [esi + 0xfd], 0x9a
mov byte [esi + 0xfe], 0x9b
mov byte [esi + 0xff], 0x98
mov eax, 4
mov byte [esi + eax + 0xfc], 0
add eax, 1
cmp eax, 5
jne 0x41a352
mov dword [esi + 0x3c], 0
mov eax, dword [esi + 0x3c]
cmp eax, 5
jae 0x41a3a4
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x3c]
movzx ecx, byte [esi + ecx + 0xfc]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041abd0
add esp, 8
mov ecx, dword [esi + 0x3c]
mov byte [esi + ecx + 0xfc], al
mov eax, dword [esi + 0x3c]
inc eax
mov dword [esi + 0x3c], eax
jmp 0x41a369
mov edi, dword [esi + 0xfc]
xor ebx, ebx
cmp ebx, dword [0x4505bc]
jb 0x41a3b6
jmp 0x41a410
mov eax, dword [0x4505c0]
cmp dword [eax + ebx*8], 0x625b6034
sete cl
test cl, 1
jne 0x41a3cc
jmp 0x41a404
mov eax, dword [eax + ebx*8 + 4]
cmp eax, edi
je 0x41a404
mov byte [esi + 0x21], cl
mov ecx, dword [0x4505c4]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov eax, dword [esi + 0x1f0]
mov dword [esp + 0xc], eax
call fcn.004403a0
mov cl, byte [esi + 0x21]
add esp, 0x10
test cl, 1
je 0x41a40b
jmp 0x41a410
add ebx, 1
jmp 0x41a3ac
call fcn.0041b030
call fcn.0041b030
mov eax, dword [esi + 0x4b0]
mov ecx, dword [esi + 0x4b4]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x7c0]
mov ecx, dword [esi + 0x7c4]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x6e0]
mov ecx, dword [esi + 0x6e4]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x4e0], 0
mov eax, dword [esi + 0x4e4]
mov ecx, dword [esi + 0x4e0]
mov eax, dword [eax + ecx*4]
jmp eax
mov dword [esi + 8], ebx
mov dword [esi + 0x570], 0
mov eax, dword [esi + 0x574]
mov ecx, dword [esi + 0x570]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x5f0], 0
mov eax, dword [esi + 0x5f4]
mov ecx, dword [esi + 0x5f0]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x7d0], 1
mov eax, dword [esi + 0x7d4]
mov ecx, dword [esi + 0x7d0]
mov eax, dword [eax + ecx*4]
mov ebx, dword [esi + 0xbc]
mov edi, dword [esi + 0x1c]
jmp eax
mov eax, dword [esi + 0x28c]
mov al, byte [eax]
mov byte [esi + 0x138], al
mov edi, dword [esi + 0x290]
mov byte [edi], 0x18
mov byte [edi + 1], 0x89
mov eax, 2
mov byte [edi + eax], 0
add eax, 1
cmp eax, 8
jne 0x41a525
mov dword [esi + 0x68], 0
mov eax, dword [esi + 0x68]
cmp eax, 8
jae 0x41a56b
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x68]
movzx ecx, byte [edi + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041ad70
add esp, 8
mov ecx, dword [esi + 0x68]
mov byte [edi + ecx], al
mov eax, dword [esi + 0x68]
inc eax
mov dword [esi + 0x68], eax
jmp 0x41a538
mov byte [esi + 0xf], bl
sub esp, 8
mov dword [esp + 4], edi
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call fcn.004044f0
add esp, 8
mov edi, eax
xor eax, eax
test edi, edi
setne al
mov dword [esi + 0x7a0], eax
mov eax, dword [esi + 0x7a4]
mov ecx, dword [esi + 0x7a0]
mov eax, dword [eax + ecx*4]
jmp eax
sub esp, 4
mov dword [esp], eax
call fcn.0043d5f0
add esp, 4
mov eax, dword [esi + 0x438]
mov ecx, dword [esi + 0x43c]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x274]
mov al, byte [eax]
mov byte [esi + 0x154], al
mov edx, dword [esi + 0x1d0]
mov byte [edx], 0x1a
mov byte [edx + 1], 0xc9
mov byte [edx + 2], 0x5e
mov byte [edx + 3], 0xcf
mov byte [edx + 4], 0x5b
mov byte [edx + 5], 0xcd
mov byte [edx + 6], 0x13
mov byte [edx + 7], 0xc3
mov byte [edx + 8], 0xc0
mov byte [edx + 9], 0xc1
mov eax, 0xa
mov byte [edx + eax], 0
add eax, 1
cmp eax, 0xd
jne 0x41a602
mov dword [esi + 0x84], 0
mov eax, dword [esi + 0x84]
cmp eax, 0xd
jae 0x41a663
mov eax, dword [esi + 0x84]
mov ecx, dword [esi + 0x84]
movzx ecx, byte [edx + ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041aec0
mov edx, dword [esi + 0x1d0]
add esp, 8
mov ecx, dword [esi + 0x84]
mov byte [edx + ecx], al
mov eax, dword [esi + 0x84]
inc eax
mov dword [esi + 0x84], eax
jmp 0x41a618
sub esp, 8
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0041ab20
add esp, 8
mov eax, dword [esi + 0x6f8]
mov ecx, dword [esi + 0x6fc]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041b030
mov dword [esi + 0x5f8], 1
mov eax, dword [esi + 0x5fc]
mov ecx, dword [esi + 0x5f8]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041b030
xor eax, eax
mov ecx, 0x11
mov edi, ebx
rep stosd dword es:[edi], eax
mov dword [ebx], 0x44
mov eax, dword [0x4505b0]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0xc9be8534
call fcn.00442e70
sub esp, 0x20
mov ecx, dword [esi + 0xd0]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
mov ecx, dword [esi + 8]
mov dword [esp + 4], ecx
mov ecx, dword [esi + 4]
mov dword [esp], ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
call eax
xor ecx, ecx
test eax, eax
setne al
mov dword [esi + 0x4f8], 0
mov edx, dword [esi + 0x4fc]
mov edi, dword [esi + 0x4f8]
mov edx, dword [edx + edi*4]
jmp edx
and dword [ebx + 0x4a], edx
cmp byte [ebx + 0x2d086], cl
add byte [ebx + 0x2d48e], cl
add byte [ebx - 0x1f007efc], cl
int3