Function at 0x41a9b0
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, 0x318
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x164], 0x49d6afa5
mov byte [esp + 0x168], 0x44
mov dword [esp + 0x169], 0
mov dword [esp + 0x16c], 0
mov ecx, 0x25473a10
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x254738ac]
xor edx, ecx
mov esi, edx
not esi
and esi, 0x50
and edx, 0xaf
sub edx, esi
mov byte [esp + ecx - 0x254738ac], dl
inc ecx
cmp ecx, 0x25473a1c
jne 0x41aa10
mov esi, dword [edi]
movzx ecx, byte [esp + 0x164]
test cl, cl
je 0x41aa5b
lea edx, [esp + 0x165]
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41aa50
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 ecx, [esp + 0x60]
lea edx, [esp + 0x70]
lea edi, [esp + 0x3c]
push ecx
push edx
push edi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.0041d1f0
add esp, 0x18
test al, al
je 0x41b1ed
mov dword [esp + 0x164], 0xc7bfadb4
mov byte [esp + 0x168], 0xd8
mov word [esp + 0x169], 0
mov byte [esp + 0x16b], 0
mov edx, 0x7608e5c4
mov eax, 0xd823933c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 8], eax
movzx edi, byte [esp + edx - 0x7608e460]
lea ecx, [edx - 0xf5]
and ecx, edi
add ecx, ecx
mov dword [esp + 4], ecx
sub ecx, edi
lea ebx, [eax + ecx]
add ebx, 0xb1d38800
or ebx, 1
add ebx, edi
sub edi, dword [esp + 4]
add edi, edx
dec edi
mov eax, dword [esp + 8]
add eax, ecx
mov ecx, eax
and eax, 0x75
and edi, 0x8a
or edi, eax
mov eax, dword [esp + 8]
not ecx
and ecx, 1
or ecx, edi
xor ecx, 0x74
add ebx, ecx
sub ebx, dword [esp + 4]
add ebx, edx
mov byte [esp + edx - 0x7608e460], bl
inc edx
dec eax
cmp edx, 0x7608e5cc
jne 0x41aae0
movzx eax, byte [esp + 0x164]
test al, al
je 0x41ab6b
lea ecx, [esp + 0x165]
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ab60
mov byte [esi], 0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x154], edx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x158], eax
mov dword [esp + 0x90], 0x1a0e1e5b
mov dword [esp + 0x94], 0x3b3a1924
mov dword [esp + 0x98], 0x49392217
mov dword [esp + 0x9c], 0x34373631
mov dword [esp + 0xa0], 0x2a214f04
mov dword [esp + 0xa4], 0x3b322826
mov dword [esp + 0xa8], 0xc0c3c23d
mov dword [esp + 0xac], 0xc0bfebee
mov dword [esp + 0xb0], 0xe2c5f2c9
mov dword [esp + 0xb4], 0xf4f4d6c1
mov dword [esp + 0xb8], 0xcea7f8c8
mov dword [esp + 0xbc], 0xa1c4cfea
mov dword [esp + 0xc0], 0xa0fee2a4
mov dword [esp + 0xc4], 0xe8ebaaa2
mov dword [esp + 0xc8], 0xd9e79ae5
mov dword [esp + 0xcc], 0xe4e7e6e1
mov dword [esp + 0xd0], 0xdacdcfc9
mov dword [esp + 0xd4], 0xec9bf0ef
mov dword [esp + 0xd8], 0xf0f9d7fc
mov dword [esp + 0xdc], 0x8ff7f6f1
mov dword [esp + 0xe0], 0xf8fbfafa
mov dword [esp + 0xe4], 0xc2e986f9
mov dword [esp + 0xe8], 0xf5f29686
mov dword [esp + 0xec], 0x93f69792
mov dword [esp + 0xf0], 0x888b8a85
mov dword [esp + 0xf4], 0xaafef6a5
mov dword [esp + 0xf8], 0xbf95a28d
mov dword [esp + 0xfc], 0x94e3b0e9
mov dword [esp + 0x100], 0x989b9a95
mov dword [esp + 0x104], 0x909f9e99
mov dword [esp + 0x108], 0xa69196e9
mov dword [esp + 0x10c], 0xa4a7a6a1
mov dword [esp + 0x110], 0x8dbf8c97
mov dword [esp + 0x114], 0xd982daa9
mov byte [esp + 0x118], 0xec
mov byte [esp + 0x11b], 0
mov word [esp + 0x119], 0
xor eax, eax
lea edi, [esp + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xe7
xor cl, byte [esp + eax + 0x90]
add cl, 0x7d
mov byte [esp + eax + 0x90], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
add eax, 0x25b8437a
mov ecx, eax
and ecx, 0xc86
or eax, 0xda47bc86
add eax, ecx
cmp eax, 0x8c
jb 0x41ad30
mov dword [esp + 0x164], 0xe03a3636
mov dword [esp + 0x168], 0xb0ff5d98
mov dword [esp + 0x16c], 0x83a4e020
mov dword [esp + 0x170], 0x7f7e7d7c
mov dword [esp + 0x174], 0x6b067ef5
mov dword [esp + 0x178], 0x8f87ec2c
mov dword [esp + 0x17c], 0x8b8a8988
mov dword [esp + 0x180], 0xd77e14d4
mov dword [esp + 0x184], 0xecba4503
mov dword [esp + 0x188], 0x5b5a46ea
mov dword [esp + 0x18c], 0x47464544
mov dword [esp + 0x190], 0x43424140
mov dword [esp + 0x194], 0x10cac6c6
mov dword [esp + 0x198], 0xecedd68
mov dword [esp + 0x19c], 0xae31f176
mov dword [esp + 0x1a0], 0xafaeadac
mov dword [esp + 0x1a4], 0xfb4290f8
mov dword [esp + 0x1a8], 0xa782e13d
mov dword [esp + 0x1ac], 0xbb3324e0
mov dword [esp + 0x1b0], 0x87bebdbc
mov dword [esp + 0x1b4], 0xb3b2b148
mov dword [esp + 0x1b8], 0xf12dedb4
mov dword [esp + 0x1bc], 0x955191e8
mov dword [esp + 0x1c0], 0x595595f4
mov dword [esp + 0x1c4], 0xc3c2c1c0
mov dword [esp + 0x1c8], 0xe3825898
mov dword [esp + 0x1cc], 0xcb4380d8
mov dword [esp + 0x1d0], 0xdf581a84
mov dword [esp + 0x1d4], 0xd3d2d1d0
mov dword [esp + 0x1d8], 0x8fd6d5d4
mov dword [esp + 0x1dc], 0xfee5e371
mov dword [esp + 0x1e0], 0xefeeedec
mov dword [esp + 0x1e4], 0xc7be7ab8
mov dword [esp + 0x1e8], 0x6d7bde4
mov byte [esp + 0x1ec], 0xf8
mov byte [esp + 0x1f1], 0
mov dword [esp + 0x1ed], 0
mov eax, 0xae80d8e8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x517f287c]
xor ecx, eax
add ecx, 0x977bc377
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax + 0x517f287c], cl
inc eax
cmp eax, 0xae80d976
jne 0x41af10
lea eax, [esp + 0x90]
lea edx, [esp + 0x164]
lea ecx, [esp + 0x150]
push eax
push 0x88
push edx
push edi
call fcn.0043bfe0
mov dword [esp + 0x14c], edx
mov dword [esp + 0x148], eax
or eax, edx
je 0x41bf3f
mov dword [esp + 0x164], 0x4fe4e710
mov byte [esp + 0x168], pe_nt_image_headers32
mov dword [esp + 0x169], 0
mov dword [esp + 0x16c], 0
mov eax, 0x36e495eb
movzx ecx, byte [esp + eax - 0x36e49487]
xor ecx, eax
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, edx
add cl, 0x68
mov byte [esp + eax - 0x36e49487], cl
inc eax
cmp eax, 0x36e495f7
jne 0x41afa0
movzx eax, byte [esp + 0x164]
test al, al
je 0x41afeb
lea ecx, [esp + 0x165]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41afe0
mov byte [esi], 0
lea eax, [esp + 0x148]
lea ecx, [esp + 0x150]
push 0
push 8
push eax
push edi
call fcn.0043bfe0
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], eax
xor ecx, ecx
or eax, edx
je 0x41bf41
mov dword [esp + 0x164], 0x7b181816
mov byte [esp + 0x168], 0x60
mov dword [esp + 0x169], 0
nop
nop
nop
mov eax, ecx
add al, 0x69
xor al, byte [esp + ecx + 0x164]
add al, 0xf3
mov byte [esp + ecx + 0x164], al
inc ecx
cmp ecx, 9
jne 0x41b040
movzx eax, byte [esp + 0x164]
test al, al
je 0x41b07b
lea ecx, [esp + 0x165]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b070
mov byte [esi], 0
lea eax, [esp + 0x140]
lea edx, [esp + 0x64]
lea ecx, [esp + 0x3c]
push 0
push 8
push eax
push edx
call fcn.0043b2c0
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x68]
je 0x41bf3f
mov dword [esp + 0x164], 0x29bf2bb7
mov dword [esp + 0x168], 0x2d4a2f43
mov dword [esp + 0x16c], 0x51395345
mov dword [esp + 0x170], 0x553d5702
mov dword [esp + 0x174], 0x59315bcc
mov word [esp + 0x178], 0x5f58
mov dword [esp + 0x17a], 0
mov eax, 0xb7
mov ecx, 0x48
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0xad]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0x6d
mov byte [esp + eax + 0xad], dl
inc eax
dec ecx
cmp eax, 0xd1
jne 0x41b100
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
nop
nop
nop
nop
nop
movzx edx, word [eax + ecx]
movzx edi, word [esp + ecx + 0x164]
test dx, dx
je 0x41b149
add ecx, 2
cmp dx, di
je 0x41b130
mov word [esp + 0x32], dx
mov dword [esp + 0x164], 0x87262763
mov byte [esp + 0x168], 0xb8
mov dword [esp + 0x169], 0
mov byte [esp + 0x16d], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x164]
lea edx, [eax - 0x1adfa0a1]
and edx, ecx
add ecx, eax
add ecx, 0xe5205f5f
add edx, edx
sub ecx, edx
add cl, 0x25
mov byte [esp + eax + 0x164], cl
lea ecx, [eax + eax]
and ecx, 2
sub eax, ecx
inc eax
mov edx, eax
and edx, ecx
xor eax, ecx
lea eax, [eax + edx*2]
cmp eax, 0xa
jb 0x41b180
movzx eax, byte [esp + 0x164]
test al, al
je 0x41b1fc
lea ecx, [esp + 0x165]
lea edx, [esp + 0x90]
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 0x41b1e0
jmp 0x41b203
mov edi, esi
mov dword [esp + 0x2c], 0
jmp 0x41bf47
lea edx, [esp + 0x90]
mov byte [esi], 0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x128], ecx
cmp eax, ecx
je 0x41bf3f
xor ecx, ecx
mov dword [esp + 0x38], 0x1a8
cmp word [esp + 0x32], di
je 0x41bfe1
mov dword [esp + 0x38], 0x190
mov dword [esp + 0x5c], 0x1b0
jne 0x41bfef
mov dword [esp + 0x50], 0x20
je 0x41b25a
mov dword [esp + 0x50], 0x10
mov ebx, 2
sub ebx, edx
mov dword [esp + 0x120], ebx
lea ebx, [esp + 0x3c]
mov word [esp + 0x4e], di
jmp 0x41b29b
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x12c]
add eax, 8
cmp eax, dword [esp + 0x128]
je 0x41c00a
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0x12c], eax
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
push 0x1b0
push 0
lea eax, [esp + 0x16c]
push eax
call fcn.0040c940
add esp, 0xc
xor edi, edi
jmp 0x41b2de
lea ebx, [esp + 0x3c]
inc edi
cmp edi, 0xb
je 0x41b4f0
mov ecx, ebx
push 0
push 0
push dword [esp + 0x64]
lea eax, [esp + 0x170]
push eax
push dword [esp + 0x14]
push dword [esp + 0x1c]
call fcn.0043b100
test eax, eax
js 0x41b2d4
cmp byte [esp + 0x234], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x235], 0
mov byte [esp + 0x78], cl
sete al
xor al, 0x31
mov byte [esp + 0x79], al
cmp byte [esp + 0x236], 0
sete al
xor al, 0x31
mov byte [esp + 0x7a], al
mov eax, dword [esp + 0x38]
cmp byte [esp + eax + 0x164], 0
sete al
xor al, 0x31
mov byte [esp + 0x7b], al
mov word [esp + 0x7c], 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 + 0x79]
inc eax
test cl, cl
jne 0x41b360
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x236]
test cl, cl
jne 0x41b510
cmp byte [esp + 0x234], 0
jne 0x41b39f
mov edx, dword [esp + 0x1a4]
or edx, dword [esp + 0x1a8]
je 0x41b510
add esi, eax
mov dword [esp + 0x90], 0x91372803
mov byte [esp + 0x94], 0x8c
mov dword [esp + 0x95], 0
mov eax, 0x621661e2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x62166152]
mov ecx, eax
or ecx, edx
lea ebx, [eax - 0x62166100]
and ebx, edx
sub ecx, ebx
add ecx, 0x15901695
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax - 0x62166152], cl
inc eax
cmp eax, 0x621661eb
jne 0x41b3d0
movzx eax, byte [esp + 0x90]
test al, al
je 0x41b42b
lea ecx, [esp + 0x91]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b420
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x90], 0x7c7d7a7b
lea eax, [esp + 0x94]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x90]
lea ebx, [eax + 0x6a]
mov ecx, 0x95
sub ecx, eax
xor ecx, ebx
and ecx, edx
xor ecx, ebx
add cl, 0xee
mov byte [esp + eax + 0x90], cl
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
and ecx, eax
add eax, ecx
cmp eax, 7
jb 0x41b460
mov eax, dword [0x44da9c]
test eax, eax
je 0x41b2d0
mov ecx, dword [esp + 0x90]
xor edx, edx
mov ebx, dword [0x44daa0]
nop
cmp dword [ebx + edx*8], 0x3568c09b
je 0x41b4c3
inc edx
cmp eax, edx
jne 0x41b4b0
jmp 0x41b2d0
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x41b2d0
lea ecx, [esp + 0x10]
push ecx
push 0
push 1
push eax
push dword [0x44daa4]
call fcn.0043e1f0
add esp, 0x14
jmp 0x41b2d0
movzx ecx, byte [esp + 0x236]
test cl, cl
jne 0x41b51a
jmp 0x41b280
add esi, eax
test cl, cl
je 0x41b280
call fcn.00404bc0
mov dword [esp + 0x58], eax
push eax
call fcn.004047f0
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x90], 0x79070319
mov byte [esp + 0x94], 0x64
lea eax, [esp + 0x94]
mov dword [eax + 4], 0
mov dword [eax + 1], 0
mov eax, 0x7aec6a68
nop
nop
nop
movzx ecx, byte [esp + eax - 0x7aec69d8]
mov edx, eax
xor edx, 0xb49bbd2f
mov edi, eax
or edi, 0x4b6442d0
and edi, edx
mov ebx, ecx
xor ebx, 0x2f
mov edx, eax
or edx, 0x9404250
and edx, 0x39c86a7f
xor edx, edi
mov edi, edx
xor edi, 0x7f
xor ecx, 0xd0
and ecx, edi
or edx, 0x80
and edx, ebx
or edx, ecx
add dl, 0xf8
mov byte [esp + eax - 0x7aec69d8], dl
inc eax
cmp eax, 0x7aec6a74
jne 0x41b560
movzx eax, byte [esp + 0x90]
test al, al
je 0x41b5e0
lea ecx, [esp + 0x91]
lea ebx, [esp + 0x3c]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b5d0
jmp 0x41b5e4
lea ebx, [esp + 0x3c]
mov byte [esi], 0
mov eax, dword [esp + 0x19c]
mov edx, dword [esp + 0x1a0]
mov ecx, eax
or ecx, edx
mov dword [esp + 8], esi
je 0x41b640
mov ecx, ebx
push 0
push 0
push 0x40
lea edi, [esp + 0x9c]
push edi
push edx
push eax
call fcn.0043b100
test eax, eax
js 0x41b64a
xor eax, eax
movzx ecx, word [esp + 0x4e]
cmp word [esp + 0x32], cx
sete al
mov ecx, ebx
mov edx, edi
push eax
push dword [esp + 0x10]
call fcn.0041dd00
add esp, 8
jmp 0x41b64c
mov dword [esp + 4], 0
jmp 0x41b650
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp + 0x90], 0x99043c39
mov byte [esp + 0x94], 0x9c
lea eax, [esp + 0x94]
mov dword [eax + 4], 0
mov dword [eax + 1], 0
mov eax, 0x64
mov ecx, 0x1ff93c9b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0x2c]
mov edx, eax
and edx, ebx
mov edi, edx
and edi, 0x7d
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
xor esi, 2
imul esi, edi
add edx, esi
mov esi, ecx
sub esi, ebx
lea edi, [eax + ebx]
add edi, 0xe006c300
and esi, edx
not edx
and edx, edi
sub edx, esi
add dl, 0xc
mov byte [esp + eax + 0x2c], dl
inc eax
dec ecx
cmp eax, 0x70
jne 0x41b690
movzx eax, byte [esp + 0x90]
test al, al
je 0x41b700
lea ecx, [esp + 0x91]
mov esi, dword [esp + 8]
lea ebx, [esp + 0x3c]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b6f0
jmp 0x41b708
mov esi, dword [esp + 8]
lea ebx, [esp + 0x3c]
mov byte [esi], 0
push dword [esp + 0xc]
call fcn.004049c0
add esp, 4
test eax, eax
setne cl
mov edx, dword [esp + 4]
and cl, dl
cmp cl, 1
jne 0x41b8b0
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2c0]
add eax, 0x28
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x144]
push edi
push edx
push eax
call fcn.0043b100
test eax, eax
mov dword [esp + 8], esi
js 0x41bb00
mov eax, dword [esp + 0x138]
mov edx, dword [esp + 0x13c]
add eax, 0x10
adc edx, 0
mov ecx, ebx
push 0
push 0
push 8
lea edi, [esp + 0x13c]
push edi
push edx
push eax
call fcn.0043b100
test eax, eax
js 0x41bb00
mov eax, dword [esp + 0x130]
mov edx, dword [esp + 0x134]
mov ecx, eax
mov edi, dword [esp + 0x50]
and ecx, edi
add ecx, ecx
xor eax, edi
add eax, ecx
adc edx, 0
mov ecx, ebx
push 0
push 0
push 0x18
lea edi, [esp + 0x84]
push edi
push edx
push eax
call fcn.0043b100
test eax, eax
js 0x41bb00
cmp byte [esp + 0x8f], 0
lea ebx, [esp + 0x78]
js 0x41b8b9
mov dword [esp + 0x10], 0x37b93955
mov dword [esp + 0x14], 0x33bc3549
mov dword [esp + 0x18], 0x4f123110
mov dword [esp + 0x1c], 0x4bc64d2d
mov dword [esp + 0x20], 0x47224929
mov word [esp + 0x24], 0x4544
lea eax, [esp + 0x26]
mov byte [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xb6
xor cl, byte [esp + eax + 0x10]
add cl, 0x72
mov byte [esp + eax + 0x10], cl
add eax, 0x95b60dd
mov ecx, eax
xor ecx, 0x95b60dc
and eax, 0x23
add eax, eax
sub eax, ecx
cmp eax, 0x1b
jb 0x41b830
movzx edi, word [esp + 0x10]
test di, di
mov dword [esp + 0xc], ebx
je 0x41b8e9
lea eax, [esp + 0x10]
mov edx, ebx
mov dword [esp + 4], ebx
jmp 0x41b888
movzx edi, word [eax]
test di, di
je 0x41b902
movzx ebx, word [edx]
test bx, bx
je 0x41b8f4
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp bx, di
je 0x41b8a8
mov dword [esp + 4], ecx
mov edx, ecx
je 0x41b880
lea eax, [esp + 0x10]
jmp 0x41b880
mov dword [esp + 4], edx
jmp 0x41bf23
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
mov eax, ecx
or eax, edi
je 0x41bb00
mov eax, dword [esp + 0x80]
mov ebx, eax
inc ebx
mov dword [esp + 4], ecx
jns 0x41b99a
mov eax, 0xffffffff
jmp 0x41b9a1
mov eax, ebx
lea edx, [esp + 0x90]
jmp 0x41b917
lea edx, [esp + 0x90]
mov ebx, edx
jmp 0x41bada
lea edx, [esp + 0x90]
mov ebx, edx
mov eax, dword [esp + 4]
test eax, eax
je 0x41bada
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x41bada
mov ebx, eax
add eax, 0x14
xor ecx, ecx
nop
nop
nop
cmp di, 0x5c
je 0x41b94a
movzx edi, word [ebx + ecx + 0x16]
add ecx, 2
test di, di
jne 0x41b930
mov ebx, edx
jmp 0x41bada
mov ebx, edx
test ecx, ecx
je 0x41ba49
sar ecx, 1
mov esi, ecx
and esi, 3
je 0x41b9e5
xor edi, edi
mov ebx, edx
mov dword [esp + 4], esi
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [eax]
xor edx, edx
test si, si
setne dl
lea eax, [eax + edx*2]
mov word [ebx], si
mov esi, dword [esp + 4]
add ebx, 2
inc edi
cmp esi, edi
jne 0x41b970
mov esi, ecx
sub esi, edi
lea edx, [esp + 0x90]
jmp 0x41b9e9
lea eax, [eax*2 + 2]
push eax
call fcn.0040c8c0
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 ebx, eax
push eax
push edi
push dword [esp + 0x18]
call fcn.0043b100
test eax, eax
jns 0x41b7ec
jmp 0x41bb00
mov ebx, edx
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x41ba49
nop
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [ebx], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 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 [ebx + 6], dx
add ebx, 8
add esi, 0xfffffffc
jne 0x41b9f0
lea edx, [esp + 0x90]
mov word [ebx], 0
mov eax, dword [esp + 0x38]
cmp byte [esp + eax + 0x164], 0
je 0x41ba62
mov esi, dword [esp + 8]
jmp 0x41bada
mov dword [esp + 0x10], 0x773f0968
mov dword [esp + 0x14], 0x73dd75e6
mov dword [esp + 0x18], 0x7fd571e3
mov dword [esp + 0x1c], 0x7bd37dee
mov dword [esp + 0x20], 0x67f579e4
mov word [esp + 0x24], 0x6564
mov dword [esp + 0x26], 0
xor eax, eax
mov esi, dword [esp + 8]
nop
mov ecx, eax
add cl, 0xbe
xor cl, byte [esp + eax + 0x10]
add cl, 0x4a
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0x1a
jne 0x41baa0
movzx eax, word [esp + 0x10]
test ax, ax
je 0x41bad5
lea ecx, [esp + 0x12]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41bac4
mov word [ebx], 0
cmp byte [esp + 0x8f], 0
jns 0x41baf7
push dword [esp + 0xc]
call fcn.0040c8d0
lea edx, [esp + 0x94]
add esp, 4
cmp edx, ebx
jne 0x41bba8
nop
mov edi, esi
mov dword [esp + 0x10], 0xd1a0cf87
mov dword [esp + 0x14], 0xd5a3d3b5
mov dword [esp + 0x18], 0xd9b8d7bd
mov dword [esp + 0x1c], 0xddaedbb3
mov dword [esp + 0x20], 0xe1dedfad
lea eax, [esp + 0x26]
mov byte [eax], 0
mov word [eax - 2], 0
mov eax, 0xf45e92cd
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0xba16d43]
not ecx
mov esi, eax
or esi, ecx
and ecx, eax
lea edx, [esi + esi]
not edx
add edx, esi
or edx, ecx
dec dl
mov byte [esp + eax + 0xba16d43], dl
inc eax
cmp eax, 0xf45e92e4
jne 0x41bb40
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x90]
mov ebx, edx
test ax, ax
je 0x41bba1
lea ecx, [esp + 0x12]
mov ebx, edx
nop
nop
nop
nop
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 0x41bb90
mov word [ebx], 0
mov esi, edi
mov eax, edx
mov edx, ebx
sub edx, eax
mov ecx, edx
shr ecx, 2
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edi, edx
mov dword [esp + 4], edx
mov eax, edx
xor eax, 3
mov ecx, edx
or ecx, 0xfffffffc
and ecx, eax
lea eax, [esi + ecx]
lea edx, [esp + ecx]
add edx, 0x90
mov ecx, edi
not ecx
or ecx, 3
mov dword [esp + 0xc], ecx
add ecx, edi
inc ecx
mov dword [esp + 0x54], ecx
shr ecx, 1
mov dword [esp + 0x34], edx
mov edi, eax
mov esi, dword [esp + 0x34]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov edi, dword [esp + 0x54]
not edi
or edi, 1
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0xc]
add ecx, esi
add ecx, edi
inc ecx
inc ecx
je 0x41bcba
mov dword [esp + 0x34], edi
mov esi, dword [esp + 0x54]
and esi, 0xfffffffe
add edx, esi
add eax, esi
mov esi, ecx
and esi, 3
je 0x41bc6b
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edx + edi]
mov byte [eax + edi], cl
inc edi
cmp esi, edi
jne 0x41bc40
add edx, edi
add eax, edi
mov ecx, dword [esp + 0x120]
mov esi, dword [esp + 0x34]
add ecx, esi
mov esi, dword [esp + 0xc]
add ecx, esi
add ecx, ebx
sub ecx, edi
mov edi, esi
jmp 0x41bc6f
mov edi, dword [esp + 0xc]
lea esi, [esp + 0x90]
sub edi, esi
add edi, dword [esp + 0x34]
lea esi, [ebx + edi]
inc esi
cmp esi, 3
jb 0x41bcba
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [edx + edi*2]
mov byte [eax + edi*2], bl
movzx ebx, byte [edx + edi*2 + 1]
mov byte [eax + edi*2 + 1], bl
movzx ebx, byte [edx + edi*2 + 2]
mov byte [eax + edi*2 + 2], bl
movzx ebx, byte [edx + edi*2 + 3]
mov byte [eax + edi*2 + 3], bl
add edi, 2
add ecx, 0xfffffffc
jne 0x41bc90
push 0xa
push 0xb
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x130]
call fcn.0041db10
add esp, 0x10
mov dword [esp + 0x10], 0xa59597ca
mov dword [esp + 0x14], 0x25c6f4d8
mov dword [esp + 0x18], 0
xor ecx, ecx
nop
mov edx, ecx
add dl, 0xcb
xor dl, byte [esp + ecx + 0x10]
add dl, 9
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0xc
jne 0x41bcf0
mov esi, dword [esp + 8]
mov ebx, dword [esp + 4]
add esi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x41bd2b
lea edx, [esp + 0x11]
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41bd20
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x41bd4b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x41bd40
mov byte [esi], 0xa
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41bd60
sar eax, 1
sar ebx, 1
lea ecx, [ebx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x41bd80
mov eax, 0xffffffff
jmp 0x41bd89
add ebx, eax
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040c8c0
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x41bdc1
add edi, 2
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41bdb0
mov dword [esp + 0xc], eax
inc esi
mov dword [esp + 8], esi
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0xd180cffd
mov dword [esp + 0x14], 0xd5abd3b7
mov dword [esp + 0x18], 0xd9a2d7fa
mov dword [esp + 0x1c], 0xddaedba0
mov word [esp + 0x20], 0xdfdc
mov dword [esp + 0x22], 0
mov ecx, 0x5befab4d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x5befab3d]
mov edx, ecx
xor edx, edi
lea ebx, [edx + edx]
not ebx
add ebx, edx
and ebx, ecx
mov esi, ebx
or esi, 0xfffffffd
inc esi
mov edx, ebx
and edx, 0x5befab7d
imul edx, esi
mov esi, ebx
and esi, 2
or ebx, 2
imul ebx, esi
add edx, edi
sub edx, ebx
add edx, ecx
lea esi, [edx + edx]
mov edi, esi
and edi, 0xfc
xor edx, 0x7e
add edx, edi
and esi, 2
xor edx, 1
add edx, esi
mov byte [esp + ecx - 0x5befab3d], dl
inc ecx
cmp ecx, 0x5befab63
jne 0x41be10
add eax, 2
movzx ecx, word [esp + 0x90]
test cx, cx
je 0x41bea1
lea edx, [esp + 0x92]
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 0x41be90
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x41bed3
lea edx, [esp + 0x12]
mov esi, dword [esp + 8]
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 0x41bec0
jmp 0x41bed7
mov esi, dword [esp + 8]
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 0x58]
call fcn.00405770
add esp, 4
mov edi, eax
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x41bef0
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x14]
push ebx
call fcn.0040d180
mov dword [esp + 4], eax
push edi
call fcn.00405800
add esp, 4
push ebx
call fcn.0040c8d0
add esp, 4
lea ebx, [esp + 0x3c]
push dword [esp + 0x58]
call fcn.00404a00
add esp, 4
mov ecx, dword [esp + 0x2c]
and cl, 1
or cl, byte [esp + 4]
jmp 0x41b284
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov edi, esi
lea ecx, [esp + 0x3c]
call fcn.0043a770
mov dword [esp + 0x164], 0x198e89fd
mov byte [esp + 0x168], 0x1c
mov dword [esp + 0x169], 0
mov eax, 0x44
mov ecx, 0xbb
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x120]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
mov bl, 0xab
sub bl, dl
mov byte [esp + eax + 0x120], bl
inc eax
dec ecx
cmp eax, 0x4d
jne 0x41bf80
movzx eax, byte [esp + 0x164]
test al, al
je 0x41bfcd
lea ecx, [esp + 0x165]
mov edx, dword [ebp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41bfc0
jmp 0x41bfd0
mov edx, dword [ebp + 0xc]
mov byte [edi], 0
mov dword [edx], edi
mov eax, dword [esp + 0x2c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x5c], 0x1b0
je 0x41b248
mov dword [esp + 0x5c], 0x198
mov dword [esp + 0x50], 0x20
jne 0x41b252
jmp 0x41b25a
mov eax, dword [esp + 0x64]
and cl, 1
test eax, eax
je 0x41bf41
cmp eax, dword [esp + 0x68]
je 0x41bf41
push eax
mov edi, ecx
call fcn.0040c8d0
mov ecx, edi
add esp, 4
mov dword [esp + 0x64], 0
jmp 0x41bf41