Function at 0x40d250
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcd8
mov ecx, dword [0x43d864]
mov dword [esp + 0xbc], 0x9fa377b2
mov word [esp + 0xc0], 0
mov byte [esp + 0xc2], 0
mov dword [esp + 0x1bc], 0
mov eax, dword [esp + 0x1bc]
cmp eax, 6
ja 0x40d2fb
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1bc]
mov edx, dword [esp + 0x1bc]
movzx edx, byte [esp + edx + 0xbc]
add eax, 0xe6ef975a
xor eax, edx
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2c8]
mov edx, eax
not edx
and edx, 0xc2
and eax, 0x3d
sub eax, edx
mov edx, dword [esp + 0x1bc]
mov byte [esp + edx + 0xbc], al
inc dword [esp + 0x1bc]
mov eax, dword [esp + 0x1bc]
cmp eax, 7
jb 0x40d2a0
mov edx, dword [str.LPnhqo__osrdtzjxvdsk]
mov dword [esp + 0x2c8], 0x1a6e7e63
mov dword [esp + 0x2cc], 0x627b646e
mov dword [esp + 0x2d0], 0x62736856
mov dword [esp + 0x2d4], 0x7263626b
mov dword [esp + 0x2d8], 0x2350106d
mov dword [esp + 0x2dc], 0x596d1913
mov dword [esp + 0x2e0], 0x1d58535e
mov dword [esp + 0x2e4], 0xa565031f
mov byte [esp + 0x2e8], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0x20
ja 0x40d3ca
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x24]
movzx esi, byte [esp + esi + 0x2c8]
lea edi, [eax + esi]
add eax, 0x2f
and eax, esi
add eax, eax
sub edi, eax
add edi, 0x75e4d02f
mov dword [esp + 0x1bc], edi
mov eax, dword [esp + 0x1bc]
add al, 0x15
mov esi, dword [esp + 0x24]
mov byte [esp + esi + 0x2c8], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 0x21
jb 0x40d380
movzx ebx, byte [esp + 0x2c8]
lea eax, [esp + 0x1bc]
test bl, bl
je 0x40d3fb
lea esi, [esp + 0x2c9]
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 0x40d3f0
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40d41b
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 0x40d410
mov byte [eax], 0
movzx edx, byte [esp + 0xbc]
test dl, dl
je 0x40d44b
lea esi, [esp + 0xbd]
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 0x40d440
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40d46b
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 0x40d460
mov byte [eax], 0
mov dword [esp + 0x2c8], 0x81378749
mov dword [esp + 0x2cc], 0x8d3e8336
mov dword [esp + 0x2d0], 0x89388f23
mov dword [esp + 0x2d4], 0x957d8b34
mov dword [esp + 0x2d8], 0x912d9748
mov dword [esp + 0x2dc], 0x9d3d9320
mov dword [esp + 0x2e0], 0x997e9f66
mov dword [esp + 0x2e4], 0x652a9b3b
mov dword [esp + 0x2e8], 0x61d267d4
mov dword [esp + 0x2ec], 0x6dcf63cb
mov dword [esp + 0x2f0], 0x69d26fcf
mov dword [esp + 0x2f4], 0x75db6bc3
mov dword [esp + 0x2f8], 0x718777c2
mov dword [esp + 0x2fc], 0x7d8573c8
mov dword [esp + 0x300], 0x79c77fc5
mov dword [esp + 0x304], 0x458d7bc1
mov dword [esp + 0x308], 0x41f747ea
mov dword [esp + 0x30c], 0x4df543f2
mov dword [esp + 0x310], 0x49f14fbb
mov dword [esp + 0x314], 0x55fe4bfa
mov dword [esp + 0x318], 0x51e057fb
mov dword [esp + 0x31c], 0x5de353fd
mov dword [esp + 0x320], 0x59f15ff0
mov dword [esp + 0x324], 0x254d5bf4
mov dword [esp + 0x328], 0x2126272e
mov byte [esp + 0x32e], 0
mov word [esp + 0x32c], 0
lea ecx, [esp + 0x1bc]
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x24]
cmp edx, 0x66
ja 0x40d5fa
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x24]
movzx esi, byte [esp + esi + 0x2c8]
lea edi, [edx + 0x61]
and edi, esi
add edx, esi
add edi, edi
sub edx, edi
add edx, 0xad7b0b61
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0xbc]
add dl, 0x1b
mov esi, dword [esp + 0x24]
mov byte [esp + esi + 0x2c8], dl
inc dword [esp + 0x24]
mov edx, dword [esp + 0x24]
cmp edx, 0x67
jb 0x40d5b0
sub eax, ecx
mov dword [esp + 0xbc], 0x13b31167
mov dword [esp + 0xc0], 0x6fd76ddc
mov word [esp + 0xc4], 0x6968
mov dword [esp + 0xc6], 0
mov word [esp + 0xca], 0
mov dword [esp + 0x260], 0
mov edx, dword [esp + 0x260]
cmp edx, 0xf
ja 0x40d69a
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x260]
mov esi, dword [esp + 0x260]
movzx esi, byte [esp + esi + 0xbc]
add edx, 0xff91a73c
xor edx, esi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x24]
add dl, 0xd4
mov esi, dword [esp + 0x260]
mov byte [esp + esi + 0xbc], dl
inc dword [esp + 0x260]
mov edx, dword [esp + 0x260]
cmp edx, 0x10
jb 0x40d650
lea edx, [esp + 0xb4]
lea esi, [esp + 0xa8]
lea edi, [esp + 0x2c8]
lea ebx, [esp + 0xbc]
push edx
push esi
mov esi, edi
push eax
push ecx
push edi
push ebx
push 0x442a40
call fcn.0040c060
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43e22c]
xor esi, esi
xor eax, eax
test esi, 0
sete al
jmp dword [eax*4 + 0x43e234]
push 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xb4]
mov edi, dword [esp + 0xa8]
mov edx, ecx
and edx, 3
mov eax, ecx
or eax, 3
imul eax, edx
xor edx, 3
mov esi, ecx
and esi, 0xfffffffc
imul esi, edx
add eax, esi
shr eax, 2
movzx edx, byte [edi + ecx - 1]
cmp edx, 0x3d
je 0x40d72f
cmp edx, 0x2e
jne 0x40d730
dec eax
movzx ecx, byte [edi + ecx - 2]
cmp ecx, 0x3d
je 0x40d73f
cmp ecx, 0x2e
jne 0x40d740
dec eax
push eax
call fcn.00409690
add esp, 4
mov esi, eax
push eax
push edi
call fcn.00431150
add esp, 8
push dword [esp + 0xa8]
call fcn.00433e80
add esp, 4
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x43e234]
push esi
call fcn.00402490
add esp, 4
mov edi, eax
jmp dword [0x43e23c]
jmp dword [0x43e248]
push edi
call fcn.00402f40
add esp, 4
mov word [esp + 0x2c8], 0x9c92
mov byte [esp + 0x2ca], 0x76
mov word [esp + 0x2cb], 0
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x24]
cmp ecx, 4
ja 0x40d801
nop
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x2c8]
add edx, 0x36e3c8be
xor edx, ecx
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0xbc]
add dl, 0x4a
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x2c8], dl
inc dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
cmp ecx, 5
jb 0x40d7c0
lea esi, [esp + 0x2c8]
push esi
mov dword [esp + 0x24], eax
push eax
call fcn.00403090
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43e254]
call fcn.004302a0
movzx eax, al
jmp dword [eax*4 + 0x43e25c]
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
shr eax, 0x1f
jmp dword [eax*4 + 0x43e264]
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 + 0x43e26c]
mov word [esp + 0x2c8], 0x7773
mov byte [esp + 0x2ca], 0xa
mov word [esp + 0x2cb], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 4
ja 0x40d8df
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x2c8]
add eax, 0x29556b83
xor eax, ecx
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xbc]
add al, 0x71
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 5
jb 0x40d8a0
push esi
push dword [esp + 0x24]
call fcn.00403090
add esp, 8
mov dword [esp + 0xb0], eax
mov word [esp + 0x2c8], 0xfcef
mov byte [esp + 0x2ca], 0x9e
mov word [esp + 0x2cb], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 4
ja 0x40d95f
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x2c8]
add eax, 0x5413d11a
xor eax, ecx
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xbc]
add al, 0x7e
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 5
jb case.default.0x40da68
push esi
mov esi, dword [esp + 0x24]
push esi
call fcn.00403090
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0xac], ecx
push esi
call fcn.0040e5f0
add esp, 4
push edi
call fcn.004034e0
add esp, 4
lea esi, [esp + 0x260]
mov ecx, esi
push 1
call fcn.00409db0
push esi
call fcn.0041b6d0
add esp, 4
mov ecx, esi
call fcn.0040a6a0
lea esi, [esp + 0xc68]
mov ecx, esi
push 3
call fcn.00409db0
push esi
call fcn.0041c070
add esp, 4
mov ecx, esi
call fcn.0040a6a0
lea esi, [esp + 0xc00]
mov ecx, esi
push 1
call fcn.00409db0
push esi
call fcn.0041c340
add esp, 4
mov ecx, esi
call fcn.0040a6a0
lea esi, [esp + 0xb98]
mov ecx, esi
push 1
call fcn.00409db0
push esi
call fcn.0041e010
add esp, 4
push esi
call fcn.0041e8e0
add esp, 4
push esi
call fcn.0041ed20
add esp, 4
mov ecx, esi
call fcn.0040a6a0
lea esi, [esp + 0xb30]
mov ecx, esi
push 1
call fcn.00409db0
push esi
call fcn.004209d0
add esp, 4
mov ecx, esi
call fcn.0040a6a0
lea esi, [esp + 0xac8]
mov ecx, esi
push 1
call fcn.00409db0
push esi
call fcn.00424790
add esp, 4
push esi
call fcn.0042bd90
add esp, 4
mov eax, dword [esp + 0xac]
jmp dword [eax*4 + 0x43e274]
push esi
call fcn.00422920
add esp, 4
lea ecx, [esp + 0xac8]
call fcn.0040a6a0
lea eax, [esp + 0x23f]
push eax
call fcn.00430c30
add esp, 4
mov dword [esp + 0x24], 0x8693834e
mov word [esp + 0x28], 0x6c8c
mov byte [esp + 0x2a], 0x2e
mov word [esp + 0x2b], 0
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0xbc]
cmp eax, 8
ja 0x40db18
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xbc]
movzx ecx, byte [esp + ecx + 0x24]
add eax, 0xc9d33387
xor eax, ecx
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2c8]
add al, 0x5d
mov ecx, dword [esp + 0xbc]
mov byte [esp + ecx + 0x24], al
inc dword [esp + 0xbc]
mov eax, dword [esp + 0xbc]
cmp eax, 9
jb 0x40dad0
mov eax, dword [0x43d864]
mov dword [esp + 8], 0x1fe3b7f2
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov dword [esp + 0xbc], 0
mov ecx, dword [esp + 0xbc]
cmp ecx, 6
ja 0x40db9a
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xbc]
movzx edx, byte [esp + edx + 8]
add ecx, 0xa442397a
xor ecx, edx
mov dword [esp + 0x2c8], ecx
mov ecx, dword [esp + 0x2c8]
add cl, 0x9e
mov edx, dword [esp + 0xbc]
mov byte [esp + edx + 8], cl
inc dword [esp + 0xbc]
mov ecx, dword [esp + 0xbc]
cmp ecx, 7
jb 0x40db50
mov ecx, dword [str.LPnhqo__osrdtzjxvdsk]
mov dword [esp + 0x2c8], 0xfa2edee3
mov dword [esp + 0x2cc], 0xdc2a2421
mov dword [esp + 0x2d0], 0x2427282f
mov dword [esp + 0x2d4], 0xef2d2ed7
mov dword [esp + 0x2d8], 0xea3c303e
mov dword [esp + 0x2dc], 0xf7fefdfc
mov dword [esp + 0x2e0], 0xe2c63c30
mov byte [esp + 0x2e4], 0xa0
mov dword [esp + 0x2e5], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 0x20
ja 0x40dc59
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x2c8]
lea edi, [edx + esi]
add edx, 0x9f
and edx, esi
add edx, edx
sub edi, edx
add edi, 0x884d839f
mov dword [esp + 0xbc], edi
mov edx, dword [esp + 0xbc]
add dl, 0xe5
mov esi, dword [esp]
mov byte [esp + esi + 0x2c8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 0x21
jb 0x40dc10
movzx edx, byte [esp + 0x2c8]
test dl, dl
je 0x40dc8b
lea ebx, [esp + 0xbc]
lea esi, [esp + 0x2c9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40dc80
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40dcab
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 0x40dca0
mov byte [ebx], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x40dccb
lea edx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40dcc0
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40dceb
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 0x40dce0
mov byte [ebx], 0
movzx eax, byte [esp + 0x24]
test al, al
je 0x40dd0b
lea ecx, [esp + 0x25]
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dd00
mov byte [ebx], 0
movzx eax, byte [esp + 0x23f]
test al, al
je 0x40dd3b
lea ecx, [esp + 0x240]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dd30
mov byte [ebx], 0
mov dword [esp + 0x2c8], 0x314f3f79
mov dword [esp + 0x2cc], 0x3546334e
mov dword [esp + 0x2d0], 0x49483753
mov dword [esp + 0x2d4], 0x4d754b3c
mov dword [esp + 0x2d8], 0x41c54f18
mov dword [esp + 0x2dc], 0x45254330
mov dword [esp + 0x2e0], 0x5966470e
mov dword [esp + 0x2e4], 0x5d2a5b3b
mov dword [esp + 0x2e8], 0x51225f2c
mov dword [esp + 0x2ec], 0x5537532b
mov dword [esp + 0x2f0], 0x69225737
mov dword [esp + 0x2f4], 0x6d1b6b13
mov dword [esp + 0x2f8], 0x615f6f12
mov dword [esp + 0x2fc], 0x655d63e8
mov dword [esp + 0x300], 0x79ef67ed
mov dword [esp + 0x304], 0x7d457bf1
mov dword [esp + 0x308], 0x710f7f1a
mov dword [esp + 0x30c], 0x750d7302
mov dword [esp + 0x310], 0x8901774b
mov dword [esp + 0x314], 0x8df68bfa
mov dword [esp + 0x318], 0x81f08feb
mov dword [esp + 0x31c], 0x85f383e5
mov dword [esp + 0x320], 0x99e187e0
mov dword [esp + 0x324], 0x9d859bfc
mov dword [esp + 0x328], 0x919e9f86
mov byte [esp + 0x32c], 0
lea eax, [esp + 0xbc]
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x64
ja 0x40ded2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x2c8]
lea esi, [ecx + edx]
add esi, 0x2ea5f035
add ecx, 0x2ea5f035
and ecx, edx
mov edx, esi
xor edx, ecx
add edx, ecx
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
add cl, 0xf7
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x2c8], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x65
jb 0x40de80
sub ebx, eax
mov dword [esp + 0x24], 0x8f2f897b
mov dword [esp + 0x28], 0x833b8d3c
mov word [esp + 0x2c], 0x8180
mov dword [esp + 0x2e], 0
mov word [esp + 0x32], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xf
ja 0x40df40
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x24]
add ecx, 0x1a653762
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x16
mov edx, dword [esp]
mov byte [esp + edx + 0x24], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x10
jb 0x40df10
lea ecx, [esp + 0xa4]
lea edx, [esp + 0x1c]
lea esi, [esp + 0x24]
push ecx
push edx
push ebx
push eax
lea eax, [esp + 0x2d8]
push eax
push esi
push 0x442a40
call fcn.0040c060
add esp, 0x1c
movzx eax, al
xor ebx, ebx
jmp dword [eax*4 + 0x43e27c]
jmp dword [0x43e288]
push edi
call fcn.004034e0
add esp, 4
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [case.0x40d76b.34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43e2c4]
lea ecx, [esp + 0x2c8]
push 1
call fcn.00409db0
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x442d49], 0
lea eax, [eax + 1]
jne 0x40dfd0
mov dword [esp + 0x24], 0x7a4844a4
mov dword [esp + 0x28], 0x7b7e874f
mov word [esp + 0x2c], 0xf17c
mov dword [esp + 0x2e], 0
mov byte [esp + 0x32], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe
ja 0x40e040
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x24]
add ecx, 0x94167e56
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x52
mov edx, dword [esp]
mov byte [esp + edx + 0x24], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xf
jb 0x40e010
lea esi, [esp + 0x2c8]
mov ecx, esi
push eax
push 0x442d48
lea eax, [esp + 0x2c]
push eax
call fcn.00409fc0
mov ecx, esi
call fcn.0040a6a0
mov ecx, esi
call fcn.00409df0
lea esi, [esp + 0x2c8]
nop
nop
jmp dword [0x43e2d4]
xor eax, eax
cmp dword [esp + 0xb0], 0
setg al
jmp dword [eax*4 + 0x43e2dc]
push 0
call fcn.00437460
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e2e4]
mov dword [esp + 0x24], 0x21b127b9
mov dword [esp + 0x28], 0x5d7423bc
mov dword [esp + 0x2c], 0x59d65fc3
mov dword [esp + 0x30], 0x557a5bc7
mov dword [esp + 0x34], 0x51db5776
mov dword [esp + 0x38], 0x4d3153dc
mov dword [esp + 0x3c], 0x49c24fde
mov dword [esp + 0x40], 0x451b4b68
mov dword [esp + 0x44], 0x41dd47d3
mov dword [esp + 0x48], 0x7d6243d6
mov dword [esp + 0x4c], 0x79e97fe1
mov dword [esp + 0x50], 0x752c7be4
mov dword [esp + 0x54], 0x71fe77eb
mov dword [esp + 0x58], 0x6d5273ef
mov dword [esp + 0x5c], 0x693f6f4e
mov dword [esp + 0x60], 0x654a6bf5
mov dword [esp + 0x64], 0x61fd67e8
mov dword [esp + 0x68], 0x9dfd63f7
mov dword [esp + 0x6c], 0x99119f0d
mov dword [esp + 0x70], 0x95ba9b14
mov dword [esp + 0x74], 0x911a97c5
mov dword [esp + 0x78], 0x8ddf93b0
mov dword [esp + 0x7c], 0x89df8fac
mov dword [esp + 0x80], 0x851b8b1e
mov dword [esp + 0x84], 0x811487e6
mov dword [esp + 0x88], 0xbde1831f
mov dword [esp + 0x8c], 0xb99ebf29
mov dword [esp + 0x90], 0xb59abbe6
mov dword [esp + 0x94], 0xb129b728
mov dword [esp + 0x98], 0xad92b324
mov dword [esp + 0x9c], 0xa9aeaf8e
mov byte [esp + 0xa2], 0
mov word [esp + 0xa0], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x7e
ja 0x40e21b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x24]
add ecx, 0xd88ed839
xor ecx, edx
mov dword [esp + 0x2c8], ecx
mov ecx, dword [esp + 0x2c8]
add cl, 0xe3
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x24], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x7f
jb 0x40e1e0
movzx ecx, word [esp + 0x24]
test cx, cx
je 0x40e241
lea esi, [esp + 0x2c8]
lea edx, [esp + 0x26]
mov word [esi], cx
add esi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40e230
mov word [esi], 0
movzx ecx, word [eax]
test cx, cx
je 0x40e271
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x40e260
mov dword [esi], 0x220022
mov dword [esi + 4], 0x22
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0x44
mov dword [esp + 0x50], 1
push 0xc9be8534
push dword [0x443d48]
call fcn.00437590
add esp, 8
lea ecx, [esp + 8]
lea edx, [esp + 0x2c8]
push ecx
lea ecx, [esp + 0x28]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e2ec]
mov eax, dword [esp + 8]
mov dword [esp], 0x14151617
mov word [esp + 4], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 5
ja 0x40e3a8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx]
add ecx, 0xc84c9b04
xor ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0xec
mov edx, dword [esp + 0x18]
mov byte [esp + edx], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 6
jb 0x40e36f
mov ecx, dword [0x443d54]
test ecx, ecx
je case.0x40d76b.42
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x443d58]
cmp dword [edi + esi*8], 0x625b6034
je 0x40e3cd
inc esi
cmp ecx, esi
jne 0x40e3bd
jmp case.0x40d76b.42
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x40d76b.42
push eax
push 1
push dword [0x443d5c]
push ecx
call fcn.00435eb0
add esp, 0x10
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [esp + 0xac8]
call fcn.00409df0
lea ecx, [esp + 0xb30]
call fcn.00409df0
lea ecx, [esp + 0xb98]
call fcn.00409df0
lea ecx, [esp + 0xc00]
call fcn.00409df0
lea ecx, [esp + 0xc68]
call fcn.00409df0
lea ecx, [esp + 0x260]
call fcn.00409df0
mov al, 1
jmp 0x40df86
mov dword [esp + 0x2c8], 0x812f2528
mov word [esp + 0x2cc], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 5
lea esi, [esp + 0x2c8]
ja 0x40e4a9
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x2c8]
add eax, 0xf728a9a1
xor eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
add al, 0xdb
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 6
jb 0x40e470
push esi
push dword [esp + 0x24]
call fcn.00403090
add esp, 8
mov ecx, dword [case.0x40df6e.13]
nop
nop
nop
nop
jmp ecx
push ebx
call fcn.00402490
add esp, 4
mov esi, eax
jmp dword [0x43e29c]
push ebx
call fcn.004096a0
add esp, 4
push esi
call fcn.004118a0
add esp, 4
push esi
call fcn.004034e0
add esp, 4
jmp case.0x40df6e.6
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0x1c]
mov edx, ecx
and edx, 3
mov eax, ecx
or eax, 3
imul eax, edx
xor edx, 3
mov edi, ecx
and edi, 0xfffffffc
imul edi, edx
add eax, edi
shr eax, 2
movzx edx, byte [esi + ecx - 1]
cmp edx, 0x3d
je 0x40e52a
cmp edx, 0x2e
jne 0x40e52b
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
je 0x40e53a
cmp ecx, 0x2e
jne 0x40e53b
dec eax
push eax
call fcn.00409690
add esp, 4
push eax
push esi
call fcn.00431150
add esp, 8
push dword [esp + 0x1c]
call fcn.00433e80
add esp, 4
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0x1c]
mov edx, ecx
and edx, 3
mov eax, ecx
or eax, 3
imul eax, edx
xor edx, 3
mov edi, ecx
and edi, 0xfffffffc
imul edi, edx
add eax, edi
shr eax, 2
movzx edx, byte [esi + ecx - 1]
cmp edx, 0x3d
je 0x40e591
cmp edx, 0x2e
jne 0x40e592
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
je 0x40e5a1
cmp ecx, 0x2e
jne 0x40e5a2
dec eax
push eax
call fcn.00409690
add esp, 4
mov ebx, eax
push eax
push esi
call fcn.00431150
add esp, 8
push dword [esp + 0x1c]
call fcn.00433e80
add esp, 4
jmp dword [0x43e28c]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43e294]
push esi
call fcn.004096a0
add esp, 4
push esi
call fcn.004096a0
add esp, 4
jmp dword [0x43e24c]
mov dword [esp + 0x44], esi
jmp 0x40e6a8
mov edi, dword [esp + 0x12c]
inc edi
push esi
call fcn.004034a0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x43e2fc]
mov dword [esp + 0x12c], edi
push edi
push esi
call fcn.004034b0
add esp, 8
mov edi, eax
mov word [esp + 0x58], 0x8b00
lea eax, [esp + 0x5b]
mov byte [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40e739
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x58]
add eax, 0xd724eda3
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0xd1
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40e700
push 3
push ebx
push edi
call fcn.00403380
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43e304]
mov word [esp + 0x58], 0x61f4
lea eax, [esp + 0x5b]
mov word [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x40e7b9
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x58]
add eax, 0xbc721318
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x88
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x40e780
push ebx
push edi
call fcn.00402e30
add esp, 8
fnstcw word [esp + 0x11c]
movzx eax, word [esp + 0x11c]
or eax, 0xc00
mov word [esp + 0x126], ax
fldcw word [esp + 0x126]
fistp dword [esp + 0x140]
fldcw word [esp + 0x11c]
mov eax, dword [esp + 0x140]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x43e30c]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x43e314]
sete al
movzx eax, al
jmp dword [eax*4 + 0x43e31c]
mov word [esp + 0x58], 0x2b8d
lea eax, [esp + 0x5b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40e889
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x58]
add eax, 0x83eb5c07
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0xdd
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40e850
push 2
push ebx
push edi
call fcn.00403380
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e3fc]
mov word [esp + 0xc0], 0x8130
lea eax, [esp + 0xc2]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 7
ja 0x40e919
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0xc0]
add eax, 0xba691f20
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x60
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xc0], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 8
jb 0x40e8e0
push 2
lea eax, [esp + 0xc4]
push eax
push edi
call fcn.00403380
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e404]
mov word [esp + 4], 0x2793
lea eax, [esp + 6]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 6
ja 0x40e9a6
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 4]
lea edx, [eax + 0x30a5f209]
lea esi, [eax + ecx]
add esi, 0x30a5f209
add eax, 9
or eax, edx
and eax, ecx
add eax, eax
sub esi, eax
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x20]
add al, 0xd3
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 4], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 7
jb case.default.0x40e9c1
push 5
lea eax, [esp + 8]
push eax
push edi
call fcn.00403380
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x44]
jmp dword [ecx*4 + 0x43e40c]
mov word [esp + 0x34], 0xf96
mov dword [esp + 0x36], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 5
ja 0x40ea23
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x34]
add eax, 0xf874e6fd
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xf
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x34], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 6
jb 0x40e9f0
push 2
lea eax, [esp + 0x38]
push eax
push edi
call fcn.00403380
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e424]
jmp dword [0x43e42c]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x43e324]
mov word [esp + 0x58], 0x11a0
lea eax, [esp + 0x5b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40eac9
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 + 0x58]
add eax, 0xd251d6fc
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x14
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40ea90
push ebx
push edi
call fcn.00402d00
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x67ee
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 3
ja 0x40eb42
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x86f52f69
xor eax, ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
add al, 0xf3
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx + 4], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 4
jb 0x40eb00
lea eax, [esp + 4]
push eax
push edi
call fcn.00402d00
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
sete al
mov edx, dword [esp + 0x10]
test edx, edx
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x43e51c]
mov eax, edx
mov ecx, edx
jmp dword [0x43e524]
mov esi, ecx
jmp 0x411268
mov word [esp + 0x58], 0x2bb4
lea eax, [esp + 0x5b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40ebe9
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 + 0x58]
add eax, 0x9f997077
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0xad
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40ebb0
push ebx
push edi
call fcn.00402d00
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x58], 0x49ce
lea eax, [esp + 0x5b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40ec59
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x58]
add eax, 0xe2dfcaee
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x5a
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40ec20
push ebx
push edi
call fcn.00402d00
add esp, 8
mov edi, dword [esp + 0x18]
test edi, edi
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x43e594]
mov ecx, edi
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne 0x40ec90
mov dword [esp + 0x14], eax
xor edi, edi
cmp esi, edx
jbe 0x40ecd7
cmp byte [edx], 0
je 0x40ecd7
xor edi, edi
mov ebx, dword [esp + 0x18]
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push esi
push ebx
call fcn.0040d0d0
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x40ecd7
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40ecb0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40ece5
mov eax, 0xffffffff
push eax
call fcn.00409690
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
jae 0x40efa6
mov edi, dword [esp + 0x24]
cmp ebx, esi
jae 0x40efa6
mov edi, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40efa6
lea eax, [esp + 0x58]
push eax
push esi
push ebx
call fcn.0040d0d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x40efa2
add ebx, eax
cmp ebx, esi
mov eax, dword [esp + 0x14]
jb 0x40ed30
jmp 0x40efa6
jmp dword [0x43e5a8]
sete al
movzx eax, al
jmp dword [eax*4 + 0x43e32c]
mov eax, dword [esp + 0x14]
mov word [edi], 0
lea esi, [eax - 1]
mov edi, 0xffffffff
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
add eax, 2
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x40efc0
and eax, 2
xor edi, 1
add edi, eax
lea eax, [edi + edi]
test edi, edi
jns 0x40efe1
mov eax, 0xffffffff
push eax
call fcn.00409690
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + edi*2]
add ecx, 0xfffffffe
mov edi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x14]
jae 0x40f04b
mov edi, dword [esp + 0x28]
cmp ebx, esi
jae 0x40f04b
mov edi, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40f04b
lea eax, [esp + 0x58]
push eax
push esi
push ebx
call fcn.0040d0d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x40f04b
add ebx, eax
cmp ebx, esi
jb 0x40f020
mov word [edi], 0
mov word [esp + 0x58], 0xf7c3
mov byte [esp + 0x5a], 0x7e
mov dword [esp + 0x5b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40f0b9
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 + 0x58]
add eax, 0x1046f015
xor eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x97
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40f080
lea ebx, [esp + 0x58]
push ebx
push dword [ebp + 8]
call fcn.00402f60
add esp, 8
xor ecx, ecx
mov dword [esp + 0x2c], eax
test eax, eax
setne cl
mov dword [esp + 0x10], 0
xor edi, edi
mov esi, dword [esp + 0x28]
jmp dword [ecx*4 + 0x43e5ac]
lea ebx, [esp + 0x58]
jmp dword [0x43e5cc]
push dword [esp + 0x2c]
call fcn.004034a0
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40f1f0
mov esi, eax
test dl, dl
jne 0x40f1f6
mov ecx, esi
push ecx
call fcn.00409690
add esp, 4
mov dword [eax], edi
add eax, 4
mov dword [esp + 0x10], eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43e5b4]
lea eax, [edi + edi*2]
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x43e5bc]
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 + 0x43e5bc]
xor ecx, ecx
xor eax, eax
cmp ecx, edi
setb al
mov esi, dword [esp + 0x28]
mov dword [esp + 0x4c], edi
jmp dword [eax*4 + 0x43e5c4]
jmp dword [0x43e610]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e43c]
jmp case.0x40e803.4
mov word [esp + 0x3c], 0x4fe8
lea eax, [esp + 0x3e]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 4
ja 0x410ff3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0xd5512c6d
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xdf
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 5
jb 0x410fc0
push 3
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00403380
add esp, 0xc
mov word [esp + 0x3c], 0x4fe8
lea eax, [esp + 0x3e]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 4
ja 0x411063
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x3c]
add eax, 0xd5512c6d
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xdf
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x3c], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 5
jb 0x411030
push 3
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00403380
add esp, 0xc
jmp dword [0x43e438]
mov edi, eax
inc eax
cmp byte [edi], 0
jne case.0x40eb67.3
xor ebx, ebx
cmp edi, ecx
jbe 0x4110c7
cmp byte [ecx], 0
je 0x4110c7
xor ebx, ebx
mov esi, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push edi
push esi
call fcn.0040d0d0
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x4110c7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4110a0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4110d5
mov eax, 0xffffffff
push eax
call fcn.00409690
add esp, 4
mov esi, eax
mov dword [esp + 0x58], 0
lea eax, [eax + ebx*2]
mov dword [esp + 0x14], eax
cmp esi, eax
jae 0x41112b
mov ebx, dword [esp + 0x10]
cmp ebx, edi
jae 0x41112b
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41112b
lea eax, [esp + 0x58]
push eax
push edi
push ebx
call fcn.0040d0d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x14]
jae 0x41112b
add ebx, eax
cmp ebx, edi
jb 0x411100
mov word [esi], 0
mov eax, dword [esp + 0x18]
lea edi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x411140
xor ebx, ebx
cmp eax, edi
jae 0x411187
cmp byte [eax], 0
je 0x411187
xor ebx, ebx
mov esi, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push edi
push esi
call fcn.0040d0d0
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x411187
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x411160
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411195
mov eax, 0xffffffff
push eax
call fcn.00409690
add esp, 4
mov esi, eax
mov dword [esp + 0x58], 0
lea eax, [eax + ebx*2]
mov dword [esp + 0x14], eax
cmp esi, eax
jae 0x4111eb
mov ebx, dword [esp + 0x18]
cmp ebx, edi
jae 0x4111eb
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4111eb
lea eax, [esp + 0x58]
push eax
push edi
push ebx
call fcn.0040d0d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x14]
jae 0x4111eb
add ebx, eax
cmp ebx, edi
jb 0x4111c0
mov word [esi], 0
mov dword [esp + 4], 0x42d9a5
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 3
ja 0x411252
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx + 4]
add eax, 0xbb721f10
xor eax, ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
add al, 0xb0
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx + 4], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 4
jb 0x411210
lea eax, [esp + 4]
push eax
push dword [ebp + 8]
call fcn.00402f60
add esp, 8
mov eax, dword [esp + 0x10]
mov esi, eax
lea eax, [esi + 1]
cmp byte [esi], 0
jne 0x411266
xor edi, edi
mov eax, dword [esp + 0x10]
cmp esi, eax
jbe 0x4112b7
cmp byte [eax], 0
je 0x4112b7
xor edi, edi
mov ebx, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push esi
push ebx
call fcn.0040d0d0
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x4112b7
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411290
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4112c5
mov eax, 0xffffffff
push eax
call fcn.00409690
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
jae 0x41132b
mov edi, dword [esp + 0x48]
cmp dword [esp + 0x10], esi
jae 0x41132b
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41132b
lea eax, [esp + 0x58]
push eax
push esi
push ebx
call fcn.0040d0d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x41132b
add ebx, eax
cmp ebx, esi
jb 0x411300
mov word [edi], 0
mov eax, dword [esp + 0x18]
lea esi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x411340
xor edi, edi
mov eax, dword [esp + 0x18]
cmp eax, esi
jae 0x411387
cmp byte [eax], 0
je 0x411387
xor edi, edi
mov ebx, dword [esp + 0x18]
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push esi
push ebx
call fcn.0040d0d0
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x411387
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411360
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411395
mov eax, 0xffffffff
push eax
call fcn.00409690
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ecx
cmp eax, ecx
jae 0x4113fb
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x18], esi
jae 0x4113fb
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4113fb
lea eax, [esp + 0x58]
push eax
push esi
push ebx
call fcn.0040d0d0
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x14]
jae 0x4113fb
add ebx, eax
cmp ebx, esi
jb 0x4113d0
mov word [edi], 0
mov dword [esp + 4], 0x42d9a5
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 3
ja 0x411462
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx + 4]
add eax, 0xbb721f10
xor eax, ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
add al, 0xb0
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx + 4], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 4
jb 0x411420
lea eax, [esp + 4]
push eax
push dword [ebp + 8]
call fcn.00402f60
add esp, 8
mov edi, eax
mov ecx, dword [esp + 0x10]
mov eax, ecx
mov dword [esp + 0x14], edi
jmp dword [0x43e52c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
add eax, 0xe93a0041
inc eax
add byte [esi], dl
add eax, 0xe9c80041
inc eax
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx + 0x1004118], bl
add byte [eax], al
add byte [esi], dl
add eax, 0xea410041
inc eax
add byte [ebx], al
adc byte [ecx], al
wait
cmovno eax, dword [eax]
wait
cmovno eax, dword [eax]
or byte [0x5160041], al
inc ecx
add byte [ebx], bl
add eax, 0x5b80041
inc ecx
add byte [eax], dl
inc byte [eax]
popfd
or al, byte [ecx]
adc ecx, dword [ebx]
inc ecx
add byte [ecx - 0x62ffbef5], cl
or al, byte [ecx]
pop esp
cmovno eax, dword [eax]
cmovno eax, dword gs:[eax]
mov cl, byte [edi]
inc ecx
add byte [esi - 0x17ffbefb], bh
add byte [ecx], al
test byte [esi], al
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [0x1004107], ch
add byte [eax], al
add al, bl
add byte [ecx], al
cmp eax, 0x2c004107
or byte [ecx], al
pop es
inc ecx
add byte [eax + ecx], ch
inc ecx
add byte [edi], al
or byte [ecx], al
sbb dword [eax], ecx
inc ecx
add byte [eax + ecx], ch
inc ecx
add byte [edx], bh
or byte [ecx], al
das
or dword [ecx], eax
or al, byte [ecx]
das
or dword [ecx], eax
insb byte es:[edi], dx
or al, byte [ecx]
dec ebx
sbb byte [ecx], al
cmp al, 0x18
inc ecx
add byte [ebx], dh
sbb byte [ecx], al
dec ebx
sbb byte [ecx], al
xor ebx, dword [eax]
inc ecx
add byte [ebp + 0x18], bh
inc ecx
add byte [eax], ch
inc byte [eax]
mov dl, 0
inc ecx
add ah, ah
inc byte [eax]
push ss
inc byte [eax]
mov eax, 0x5004100
inc dword [eax]
int3