Function at 0x41ae30
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x310
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x15c], 0xc9bea7ad
mov byte [esp + 0x160], 0x2c
mov dword [esp + 0x161], 0
mov word [esp + 0x165], 0
mov ecx, 0xcc
mov edx, 0x33
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x90]
mov esi, edx
or esi, ebx
not ebx
or ebx, ecx
and ebx, esi
mov al, 3
sub al, bl
mov byte [esp + ecx + 0x90], al
inc ecx
dec edx
cmp ecx, 0xd7
jne 0x41ae90
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
movzx ecx, byte [esp + 0x15c]
test cl, cl
je 0x41aedb
lea edx, [esp + 0x15d]
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41aed0
mov byte [esi], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x58]
lea ecx, [esp + 0x68]
lea edx, [esp + 0x3c]
push eax
push ecx
push edx
mov eax, dword [ebp + 0x14]
push dword [eax + 0x10]
push edi
push dword [eax + 0xc]
call fcn.0041d5b0
add esp, 0x18
test al, al
je 0x41b6b0
mov dword [esp + 0x15c], 0x39514340
mov byte [esp + 0x160], 0x3c
mov dword [esp + 0x161], 0
mov word [esp + 0x165], 0
mov eax, 0xb4
mov ecx, 0xad91a14b
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xa8]
mov ebx, edx
not ebx
mov edi, eax
or edi, ebx
add edx, edi
inc edx
and ebx, ecx
mov edi, edx
not edi
and edi, ebx
xor edx, ebx
add edx, ebx
sub edx, edi
lea ebx, [edx + edx]
not ebx
add ebx, edx
add bl, 0x7c
mov byte [esp + eax + 0xa8], bl
inc eax
dec ecx
cmp eax, 0xbf
jne 0x41af60
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41afbb
lea ecx, [esp + 0x15d]
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41afb0
mov byte [esi], 0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x14c], edx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x150], eax
mov dword [esp + 0x15c], 0x161a6a2f
mov dword [esp + 0x160], 0x2f0e1134
mov dword [esp + 0x164], 0x31212e73
mov dword [esp + 0x168], 0x343b3a39
mov dword [esp + 0x16c], 0x26193b04
mov dword [esp + 0x170], 0x4f26201a
mov dword [esp + 0x174], 0x484f4e4d
mov dword [esp + 0x178], 0x58437f72
mov dword [esp + 0x17c], 0x7e5d0e51
mov dword [esp + 0x180], 0x140c6a59
mov dword [esp + 0x184], 0x72536040
mov dword [esp + 0x188], 0x594c7316
mov dword [esp + 0x18c], 0x586a1ea4
mov dword [esp + 0x190], 0x201f5e5e
mov dword [esp + 0x194], 0x21736625
mov dword [esp + 0x198], 0x646b6a69
mov dword [esp + 0x19c], 0x56455b51
mov dword [esp + 0x1a0], 0x7c6f4863
mov dword [esp + 0x1a4], 0x7861436c
mov dword [esp + 0x1a8], 0x7b7b7a79
mov dword [esp + 0x1ac], 0x7077766e
mov dword [esp + 0x1b0], 0xc6617a71
mov dword [esp + 0x1b4], 0x857ea282
mov dword [esp + 0x1b8], 0x977a9b9e
mov dword [esp + 0x1bc], 0x80878685
mov dword [esp + 0x1c0], 0xbe728ab5
mov dword [esp + 0x1c4], 0xa39dae9d
mov dword [esp + 0x1c8], 0x9497b891
mov dword [esp + 0x1cc], 0x90979695
mov dword [esp + 0x1d0], 0xb8939291
mov dword [esp + 0x1d4], 0xaa99e2a1
mov dword [esp + 0x1d8], 0xa4abaaa9
mov dword [esp + 0x1dc], 0x9d8b8493
mov dword [esp + 0x1e0], 0xb196aea1
mov byte [esp + 0x1e4], 0x7c
mov dword [esp + 0x1e5], 0
mov eax, 0xf2967c29
mov ecx, 0xd6983d6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xd698533]
lea edi, [edx + edx]
not edi
add edi, edx
and edi, 0xa8
and edx, 0x57
or edx, edi
mov edi, ecx
and edi, 0x949807e
mov ebx, eax
and ebx, 0xc0927581
or ebx, edi
mov edi, ebx
xor edi, 0x81
and ebx, 0x57
xor ebx, 0xfe
add edi, ebx
inc edi
mov ebx, eax
and ebx, 0x57
or ebx, edi
xor ebx, edx
add bl, 0x33
mov byte [esp + eax + 0xd698533], bl
inc eax
dec ecx
cmp eax, 0xf2967cb6
jne 0x41b180
mov dword [esp + 0x88], 0xe0dad6d6
mov dword [esp + 0x8c], 0x501fbd78
mov dword [esp + 0x90], 0x436420e0
mov dword [esp + 0x94], 0x5f5e5d5c
mov dword [esp + 0x98], 0xabc65ed5
mov dword [esp + 0x9c], 0x4f472cec
mov dword [esp + 0xa0], 0x4b4a4948
mov dword [esp + 0xa4], 0xf75e34f4
mov dword [esp + 0xa8], 0xec9a05c3
mov dword [esp + 0xac], 0x7b7a06ea
mov dword [esp + 0xb0], 0x7060504
mov dword [esp + 0xb4], 0x3020100
mov dword [esp + 0xb8], 0xb08a8686
mov dword [esp + 0xbc], 0x4e8efd28
mov dword [esp + 0xc0], 0x2e519116
mov dword [esp + 0xc4], 0x2f2e2d2c
mov dword [esp + 0xc8], 0x9b02f098
mov dword [esp + 0xcc], 0x27c2e15d
mov dword [esp + 0xd0], 0x1b9364a0
mov dword [esp + 0xd4], 0xc71e1d1c
mov dword [esp + 0xd8], 0x13121108
mov dword [esp + 0xdc], 0xd16dad14
mov dword [esp + 0xe0], 0xb571b1e8
mov dword [esp + 0xe4], 0x7975b5d4
mov dword [esp + 0xe8], 0x3020100
mov dword [esp + 0xec], 0xe3c278b8
mov dword [esp + 0xf0], 0xb8340f8
mov dword [esp + 0xf4], 0xff78ba44
mov dword [esp + 0xf8], 0xf3f2f1f0
mov dword [esp + 0xfc], 0x4ff6f5f4
mov dword [esp + 0x100], 0x1ee5e391
mov dword [esp + 0x104], 0xefeeedec
mov dword [esp + 0x108], 0x75e9a58
mov dword [esp + 0x10c], 0xc6375de4
mov byte [esp + 0x110], 0xd8
mov dword [esp + 0x111], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x88]
lea edx, [eax - 0x49705268]
xor edx, ecx
mov ecx, edx
and ecx, 7
xor edx, 7
lea ecx, [edx + ecx*2]
inc cl
mov byte [esp + eax + 0x88], cl
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
and ecx, eax
add eax, ecx
cmp eax, 0x8d
jb 0x41b370
lea eax, [esp + 0x15c]
lea edx, [esp + 0x88]
lea ecx, [esp + 0x148]
push eax
push 0x88
push edx
lea ebx, [esp + 0x48]
push ebx
call fcn.00439950
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], eax
or eax, edx
je 0x41b6b0
mov dword [esp + 0x15c], 0xcfa4a790
mov byte [esp + 0x160], 0x38
mov dword [esp + 0x161], 0
mov dword [esp + 0x164], 0
mov eax, 0x177fd24d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x177fd0f1]
lea edx, [eax - 0x177fd182]
and edx, ecx
add ecx, eax
add edx, edx
mov edi, ecx
sub edi, edx
add edi, 0xe97ef97e
mov edx, edi
and edx, 8
xor edi, 8
lea edx, [edi + edx*2]
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
mov byte [esp + eax - 0x177fd0f1], cl
inc eax
cmp eax, 0x177fd259
jne 0x41b420
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b48b
lea ecx, [esp + 0x15d]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b480
mov byte [esi], 0
lea eax, [esp + 0x140]
lea ecx, [esp + 0x148]
push 0
push 8
push eax
push ebx
call fcn.00439950
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], eax
xor ebx, ebx
or eax, edx
je 0x41b6b2
mov dword [esp + 0x15c], 0x15ca496
mov byte [esp + 0x160], 0xf4
mov dword [esp + 0x161], 0
nop
nop
nop
mov eax, ebx
add al, 0x7e
xor al, byte [esp + ebx + 0x15c]
add al, 0x8a
mov byte [esp + ebx + 0x15c], al
inc ebx
cmp ebx, 9
jne 0x41b4e0
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b51b
lea ecx, [esp + 0x15d]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b510
mov byte [esi], 0
lea eax, [esp + 0x138]
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x3c]
push 0
push 8
push eax
push edx
call fcn.00438ea0
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x60]
je 0x41b6b0
mov dword [esp + 0x15c], 0x1fb07f3
mov dword [esp + 0x160], 0xdee03ef
mov dword [esp + 0x164], 0x9e10fe5
mov dword [esp + 0x168], 0x15e50b3e
mov dword [esp + 0x16c], 0x11f917ec
mov dword [esp + 0x170], 0x1310
mov eax, 0xc1
mov ecx, 0x3e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x9b]
mov edi, ecx
or edi, edx
not edx
or edx, eax
and edx, edi
mov bl, 0x3a
sub bl, dl
mov byte [esp + eax + 0x9b], bl
inc eax
dec ecx
cmp eax, 0xd9
jne 0x41b5a0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
nop
nop
movzx edx, word [eax + ecx]
movzx edi, word [esp + ecx + 0x15c]
test dx, dx
je 0x41b5e9
add ecx, 2
cmp dx, di
je 0x41b5d0
mov word [esp + 0x28], di
mov word [esp + 0x2a], dx
mov dword [esp + 0x15c], 0x89e6e5f1
mov byte [esp + 0x160], 0xac
mov word [esp + 0x161], 0
mov byte [esp + 0x163], 0
mov eax, 0x4b8ff91c
nop
nop
nop
movzx edx, byte [esp + eax - 0x4b8ff7c0]
mov ecx, edx
not ecx
or ecx, eax
lea edi, [edx + ecx]
inc edi
mov ebx, edi
or ebx, 0xfffffffd
inc ebx
mov ecx, edi
and ecx, 0xfffffffd
imul ecx, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add ecx, edx
sub ecx, edi
add ecx, eax
lea edx, [ecx + ecx]
and edx, 0xc6044e6
xor ecx, 0x86302273
mov edi, edx
and edi, ecx
xor ecx, edx
lea ecx, [ecx + edi*2]
inc cl
mov byte [esp + eax - 0x4b8ff7c0], cl
inc eax
cmp eax, 0x4b8ff924
jne 0x41b620
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b74d
lea ecx, [esp + 0x15d]
lea edx, [esp + 0x88]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b6a0
jmp 0x41b754
xor ebx, ebx
lea ecx, [esp + 0x3c]
call fcn.004384d0
mov dword [esp + 0x15c], 0x1baaafbb
mov byte [esp + 0x160], 0x20
mov dword [esp + 0x161], 0
mov byte [esp + 0x165], 0
mov eax, 0xcb7776f9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x34888a63]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x23
mov byte [esp + eax + 0x34888a63], cl
inc eax
cmp eax, 0xcb777703
jne 0x41b6f0
movzx eax, byte [esp + 0x15c]
test al, al
je 0x41b73b
lea ecx, [esp + 0x15d]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b730
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea edx, [esp + 0x88]
mov byte [esi], 0
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x120], eax
xor ebx, ebx
cmp ecx, eax
je 0x41b6b2
mov dword [esp + 0x38], 0x1a8
movzx eax, word [esp + 0x28]
cmp word [esp + 0x2a], ax
je 0x41c3af
mov dword [esp + 0x38], 0x190
mov dword [esp + 0x54], 0x1b0
jne 0x41c3bd
mov dword [esp + 0x4c], 0x20
je 0x41b7b0
mov dword [esp + 0x4c], 0x10
not edx
mov dword [esp + 0x11c], edx
lea edi, [esp + 0x3c]
jmp 0x41b7db
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x124]
add ecx, 8
cmp ecx, dword [esp + 0x120]
je 0x41c3d8
mov dword [esp + 0x50], ebx
mov eax, dword [ecx]
mov dword [esp + 0x34], eax
mov dword [esp + 0x124], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x24], eax
push 0x1b0
push 0
lea eax, [esp + 0x164]
push eax
call fcn.0040cac0
add esp, 0xc
xor ebx, ebx
jmp 0x41b81e
mov ebx, dword [esp + 4]
inc ebx
cmp ebx, 0xb
je 0x41ba60
mov ecx, edi
push 0
push 0
push dword [esp + 0x5c]
lea eax, [esp + 0x168]
push eax
push dword [esp + 0x34]
push dword [esp + 0x48]
call fcn.00438d30
test eax, eax
js 0x41b814
cmp byte [esp + 0x22c], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x22d], 0
mov byte [esp + 0x70], cl
sete al
xor al, 0x31
mov byte [esp + 0x71], al
cmp byte [esp + 0x22e], 0
sete al
xor al, 0x31
mov byte [esp + 0x72], al
mov eax, dword [esp + 0x38]
cmp byte [esp + eax + 0x15c], 0
sete al
xor al, 0x31
mov byte [esp + 0x73], al
mov word [esp + 0x74], 0xa
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0x71]
inc eax
test cl, cl
jne 0x41b8a0
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x22e]
test cl, cl
jne 0x41ba80
cmp byte [esp + 0x22c], 0
jne 0x41b8df
mov edx, dword [esp + 0x19c]
or edx, dword [esp + 0x1a0]
je 0x41ba80
add esi, eax
mov dword [esp + 0x88], 0x7fddd4c5
mov byte [esp + 0x8c], 0x48
lea eax, [esp + 0x8d]
mov byte [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x88]
lea ecx, [eax - 0x6cce06ed]
xor ecx, edx
mov edx, ecx
xor edx, 0x60
and ecx, 0x1f
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esp + eax + 0x88], cl
mov ecx, eax
and ecx, 5
xor eax, 0x79bfe085
lea eax, [eax + ecx*2]
add eax, 0x86401f7c
cmp eax, 0xa
jb 0x41b910
movzx eax, byte [esp + 0x88]
test al, al
mov dword [esp + 4], ebx
je 0x41b97b
lea ecx, [esp + 0x89]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b970
mov byte [esi], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0xff676980
mov dword [esp + 0x88], 0x585b5a45
mov word [esp + 0x8c], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x88]
mov edx, eax
and edx, 5
mov ebx, eax
and ebx, 2
mov edi, eax
or edi, 2
imul edi, ebx
xor ebx, 2
imul ebx, edx
mov edx, eax
xor edx, 0x9e680ef
add edx, edi
add edx, ebx
mov edi, edx
and edi, ecx
add edx, ecx
add edi, edi
sub edx, edi
mov ecx, edx
and ecx, 0x54
xor edx, 0x54
lea ecx, [edx + ecx*2]
inc cl
mov byte [esp + eax + 0x88], cl
inc eax
cmp eax, 6
jne 0x41b9b0
mov eax, dword [0x449ea0]
test eax, eax
lea edi, [esp + 0x3c]
je 0x41b810
mov ecx, dword [esp + 0x88]
xor edx, edx
mov ebx, dword [0x449ea4]
cmp dword [ebx + edx*8], 0x3568c09b
je 0x41ba33
inc edx
cmp eax, edx
jne 0x41ba20
jmp 0x41b810
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x41b810
lea ecx, [esp + 8]
push ecx
push 0
push 1
push eax
push dword [0x449ea8]
call fcn.0043b0a0
add esp, 0x14
jmp 0x41b810
movzx ecx, byte [esp + 0x22e]
test cl, cl
jne 0x41ba8a
jmp 0x41b7c0
add esi, eax
test cl, cl
je 0x41b7c0
call fcn.00404bc0
mov dword [esp + 0x34], eax
push eax
call fcn.004047f0
add esp, 4
mov edi, eax
mov dword [esp + 0x88], 0x9afb3a9
mov byte [esp + 0x8c], 0xec
lea eax, [esp + 0x8d]
mov dword [eax + 3], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xfc
xor cl, byte [esp + eax + 0x88]
add cl, 0x14
mov byte [esp + eax + 0x88], cl
add eax, 0x3f34b8f3
mov ecx, eax
xor ecx, 0x3f34b8f2
and eax, 0x10d
add eax, eax
sub eax, ecx
cmp eax, 0xc
jb 0x41bad0
movzx eax, byte [esp + 0x88]
test al, al
je 0x41bb2b
lea ecx, [esp + 0x89]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41bb20
mov byte [esi], 0
mov eax, dword [esp + 0x194]
mov edx, dword [esp + 0x198]
mov ecx, eax
or ecx, edx
je 0x41bb90
mov dword [esp + 4], edi
lea edi, [esp + 0x3c]
mov ecx, edi
push 0
push 0
push 0x40
lea ebx, [esp + 0x94]
push ebx
push edx
push eax
call fcn.00438d30
test eax, eax
js 0x41bb9a
xor eax, eax
movzx ecx, word [esp + 0x28]
cmp word [esp + 0x2a], cx
sete al
mov ecx, edi
mov edx, ebx
push eax
mov edi, dword [esp + 8]
push edi
call fcn.0041e0c0
add esp, 8
jmp 0x41bba0
mov dword [esp + 4], 0
jmp 0x41bba4
xor eax, eax
mov edi, dword [esp + 4]
mov dword [esp + 4], eax
mov dword [esp + 0x88], 0x9a4aca9
mov byte [esp + 0x8c], 0x6c
lea eax, [esp + 0x8d]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x3c
mov ecx, 0xc3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0x4c]
mov edx, eax
xor edx, ecx
and edx, ebx
xor edx, ecx
mov bl, 0xd3
sub bl, dl
mov byte [esp + eax + 0x4c], bl
inc eax
dec ecx
cmp eax, 0x46
jne 0x41bbe0
movzx eax, byte [esp + 0x88]
test al, al
je 0x41bc1b
lea ecx, [esp + 0x89]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41bc10
mov byte [esi], 0
push edi
call fcn.004049c0
add esp, 4
test eax, eax
setne cl
mov edx, dword [esp + 4]
and cl, dl
cmp cl, 1
jne 0x41bdb0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2b4]
mov edx, dword [esp + 0x2b8]
add eax, 0x28
adc edx, 0
lea edi, [esp + 0x3c]
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x13c]
push ebx
push edx
push eax
call fcn.00438d30
test eax, eax
js 0x41c050
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x134]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x134]
push ebx
push edx
push eax
call fcn.00438d30
test eax, eax
js 0x41c050
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x128]
add edx, dword [esp + 0x4c]
adc eax, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0x7c]
push edi
push eax
push edx
call fcn.00438d30
test eax, eax
js 0x41c050
cmp byte [esp + 0x87], 0
lea eax, [esp + 0x70]
mov dword [esp + 0x2c], eax
js 0x41bdbd
mov dword [esp + 8], 0x1fa9194d
mov dword [esp + 0xc], 0x63d41db9
mov dword [esp + 0x10], 0x67226100
mov dword [esp + 0x14], 0x6bde65c5
mov dword [esp + 0x18], 0x6f3269c9
mov word [esp + 0x1c], 0x6d6c
mov dword [esp + 0x1e], 0
mov eax, 0x1dbd0245
lea ecx, [esp + 8]
movzx edx, byte [ecx]
mov edi, edx
xor edi, 0x1b
mov ebx, eax
xor ebx, 0xe4
or ebx, edi
mov edi, eax
xor edi, 0x1b
xor edx, 0xe4
or edx, edi
and edx, ebx
add dl, 0x5e
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0x1dbd022b
jne 0x41bd30
movzx edi, word [esp + 8]
test di, di
je 0x41bdea
lea eax, [esp + 8]
mov ecx, dword [esp + 0x2c]
mov edx, ecx
mov dword [esp + 4], ecx
jmp 0x41bd88
movzx edi, word [eax]
test di, di
je 0x41be05
movzx ebx, word [edx]
test bx, bx
je 0x41bdf7
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp bx, di
je 0x41bda8
mov dword [esp + 4], ecx
mov edx, ecx
je 0x41bd80
lea eax, [esp + 8]
jmp 0x41bd80
lea edi, [esp + 0x3c]
mov dword [esp + 4], edx
jmp 0x41c393
mov ecx, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov eax, ecx
or eax, edi
je 0x41c050
mov eax, dword [esp + 0x78]
mov ebx, eax
inc ebx
mov dword [esp + 4], ecx
jns 0x41bec6
mov eax, 0xffffffff
jmp 0x41becd
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x88]
jmp 0x41be1a
lea edx, [esp + 0x88]
mov ebx, edx
jmp 0x41c024
lea edx, [esp + 0x88]
mov ebx, edx
mov eax, dword [esp + 4]
test eax, eax
je 0x41c024
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x41c024
lea ecx, [eax + 0x14]
mov dword [esp + 0x30], ecx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x41be5a
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x41be40
mov ebx, edx
jmp 0x41c024
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 0x30]
je 0x41bf81
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x41bf13
mov ebx, edx
xor edx, edx
mov dword [esp + 0x118], eax
mov edi, dword [esp + 0x30]
movzx eax, word [edi]
mov word [esp + 4], ax
xor eax, eax
cmp word [esp + 4], 0
setne al
lea edi, [edi + eax*2]
mov eax, dword [esp + 0x118]
mov dword [esp + 0x30], edi
movzx edi, word [esp + 4]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x41be80
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x88]
mov edi, dword [esp + 0x30]
jmp 0x41bf17
lea eax, [eax*2 + 2]
push eax
call fcn.0040ca10
add esp, 4
mov edx, ebx
and edx, 0xfffffffd
mov ecx, ebx
and ecx, 2
or ebx, 2
imul ebx, ecx
xor ecx, 2
imul ecx, edx
add ebx, ecx
lea ecx, [esp + 0x3c]
push 0
push 0
push ebx
mov dword [esp + 0x38], eax
push eax
push edi
push dword [esp + 0x18]
call fcn.00438d30
test eax, eax
jns 0x41bcf0
jmp 0x41c050
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x41bf81
nop
nop
nop
mov dword [esp + 4], eax
movzx eax, word [edi]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx], ax
lea eax, [edi + ecx*2]
movzx ecx, word [edi + ecx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 4], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [eax + edx*2]
mov eax, dword [esp + 4]
mov word [ebx + 6], cx
add ebx, 8
add eax, 0xfffffffc
jne 0x41bf20
lea edx, [esp + 0x88]
mov word [ebx], 0
mov eax, dword [esp + 0x38]
cmp byte [esp + eax + 0x15c], 0
jne 0x41c024
mov dword [esp + 8], 0xe13de7c4
mov dword [esp + 0xc], 0xfd1fe316
mov dword [esp + 0x10], 0xf907ff0d
mov dword [esp + 0x14], 0xf501fb0e
mov dword [esp + 0x18], 0xf107f778
mov word [esp + 0x1c], 0xf3f0
lea eax, [esp + 0x1e]
mov byte [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x29
xor cl, byte [esp + eax + 8]
add cl, 0x33
mov byte [esp + eax + 8], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x1b
jb 0x41bfe0
movzx eax, word [esp + 8]
test ax, ax
je 0x41c01f
lea ecx, [esp + 0xa]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41c00e
mov word [ebx], 0
cmp byte [esp + 0x87], 0
jns 0x41c041
push dword [esp + 0x2c]
call fcn.0040ca20
lea edx, [esp + 0x8c]
add esp, 4
cmp edx, ebx
jne 0x41c0f6
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], 0x178419e1
mov dword [esp + 0xc], 0x1381158b
mov dword [esp + 0x10], 0xf9c118b
mov dword [esp + 0x14], 0xb860d95
mov dword [esp + 0x18], 0x706099b
mov eax, 0xb22746fe
mov ecx, 0x644e8dfc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0x90
mov edx, eax
xor edx, 0xc8
add edx, edi
xor dl, byte [esp + eax + 0x4dd8b90a]
add dl, 0x22
mov byte [esp + eax + 0x4dd8b90a], dl
inc eax
add ecx, 2
cmp eax, 0xb2274712
jne 0x41c090
movzx eax, word [esp + 8]
lea edx, [esp + 0x88]
mov ebx, edx
test ax, ax
je 0x41c0f1
lea ecx, [esp + 0xa]
mov ebx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41c0e0
mov word [ebx], 0
mov eax, ebx
xor eax, edx
and ebx, dword [esp + 0x11c]
add ebx, ebx
sub ebx, eax
mov ecx, ebx
shr ecx, 2
mov eax, edx
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, ebx
and ecx, 0xfffffffc
lea edi, [esi + ecx]
lea eax, [esp + ecx]
add eax, 0x88
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov edx, eax
mov dword [esp + 4], edi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
test bl, 1
je 0x41c14b
mov ecx, ebx
and ecx, 2
movzx eax, byte [eax + ecx]
mov edx, dword [esp + 4]
mov byte [edx + ecx], al
push 0xa
push 0xb
lea eax, [esp + 0x78]
push eax
push dword [esp + 0x30]
call fcn.0041dee0
add esp, 0x10
mov dword [esp + 8], 0xcfd3dd7a
mov dword [esp + 0xc], 0x7f9e889c
lea ecx, [esp + 0x1e]
mov byte [ecx - 0xc], 0
mov word [ecx - 0xe], 0
xor ecx, ecx
mov edi, ecx
and edi, 8
xor edi, 0x38
mov edx, ecx
and edx, 7
sub edx, edi
add dl, 0xcc
xor dl, byte [esp + ecx + 8]
add dl, 0x1c
mov byte [esp + ecx + 8], dl
inc ecx
cmp ecx, 0xb
jne 0x41c180
add esi, ebx
movzx ecx, byte [esp + 8]
test cl, cl
je 0x41c1cb
lea edx, [esp + 9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41c1c0
mov byte [esi], 0
movzx ecx, byte [eax]
mov edx, ebx
test cl, cl
je 0x41c1eb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x41c1e0
mov byte [esi], 0xa
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x41c200
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x41c220
mov eax, 0xffffffff
jmp 0x41c229
add edx, eax
lea eax, [edx*2 + 0x14]
push eax
call fcn.0040ca10
add esp, 4
movzx ecx, word [ebx]
mov edi, eax
test cx, cx
je 0x41c261
add ebx, 2
mov edi, eax
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 [ebx]
add ebx, 2
test cx, cx
jne 0x41c250
mov dword [esp + 0x24], eax
inc esi
mov word [edi], 0x2f
mov dword [esp + 8], 0x430c412f
mov dword [esp + 0xc], 0x47d145e1
mov dword [esp + 0x10], 0x4bde4926
mov dword [esp + 0x14], 0x4fda4dd4
mov word [esp + 0x18], 0xb1b0
lea ecx, [esp + 0x1e]
mov word [ecx], 0
mov dword [ecx - 4], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 8]
lea ebx, [ecx + 0xf0]
mov edx, 0xf
sub edx, ecx
xor edx, ebx
and edx, eax
xor edx, ebx
add dl, 0x50
mov byte [esp + ecx + 8], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 0x18
jb 0x41c2b0
add edi, 2
movzx ecx, word [esp + 0x88]
test cx, cx
je 0x41c311
lea edx, [esp + 0x8a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41c300
mov word [edi], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x41c341
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41c330
mov word [edi], 0
mov ebx, 0xffffffff
push dword [esp + 0x34]
call fcn.00405830
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x41c360
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x2c]
push ebx
call fcn.0040d2d0
mov dword [esp + 4], eax
push edi
call fcn.004058c0
add esp, 4
push ebx
call fcn.0040ca20
add esp, 4
lea edi, [esp + 0x3c]
push dword [esp + 0x34]
call fcn.00404a00
add esp, 4
mov ebx, dword [esp + 0x50]
and bl, 1
or bl, byte [esp + 4]
jmp 0x41b7c4
mov dword [esp + 0x54], 0x1b0
je 0x41b79e
mov dword [esp + 0x54], 0x198
mov dword [esp + 0x4c], 0x20
jne 0x41b7a8
jmp 0x41b7b0
mov eax, dword [esp + 0x5c]
and bl, 1
test eax, eax
je 0x41b6b2
cmp eax, dword [esp + 0x60]
je 0x41b6b2
push eax
call fcn.0040ca20
add esp, 4
mov dword [esp + 0x5c], 0
jmp 0x41b6b2