Function at 0x41ff30
Capabilities:
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, 0x2e8
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x148], 0x76e699f
mov byte [esp + 0x14c], 0xf8
mov dword [esp + 0x14d], 0
mov word [esp + 0x151], 0
xor edx, edx
mov bl, 0xff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edx
not esi
mov eax, edx
shr al, 1
and al, 1
and esi, 2
mov ecx, edx
or cl, 2
mul cl
mov ecx, edx
and ecx, 0xd
imul ecx, esi
add al, al
add al, bl
add al, cl
xor al, byte [esp + edx + 0x148]
add al, 5
mov byte [esp + edx + 0x148], al
inc edx
dec bl
cmp edx, 0xb
jne 0x41ff90
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
movzx eax, byte [esp + 0x148]
test al, al
je 0x41fffb
lea edx, [esp + 0x149]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x41fff0
mov byte [esi], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
lea eax, [esp + 0x48]
lea ecx, [esp + 0x58]
lea edx, [esp + 0x38]
xor ebx, ebx
push eax
push ecx
push edx
mov eax, dword [ebp + 0x14]
push dword [eax + 0x10]
push edi
push dword [eax + 0xc]
call fcn.00422320
add esp, 0x18
test al, al
je 0x42119f
mov dword [esp + 0x148], 0x61091708
mov byte [esp + 0x14c], 0x94
mov dword [esp + 0x14d], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0xe6
xor al, byte [esp + ebx + 0x148]
add al, 0x82
mov byte [esp + ebx + 0x148], al
inc ebx
cmp ebx, 9
jne 0x420070
movzx eax, byte [esp + 0x148]
test al, al
je 0x4200ab
lea ecx, [esp + 0x149]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4200a0
mov byte [esi], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x140], eax
mov dword [esp + 0x148], 0xeafeee0b
mov dword [esp + 0x14c], 0xb0ae904
mov dword [esp + 0x150], 0x190902d7
mov dword [esp + 0x154], 0x14171611
mov dword [esp + 0x158], 0xfa01dfe4
mov dword [esp + 0x15c], 0xebf2f806
mov dword [esp + 0x160], 0xe0e3e2ed
mov dword [esp + 0x164], 0xe0ef1b1e
mov dword [esp + 0x168], 0x2e532f9
mov dword [esp + 0x16c], 0x343416e1
mov dword [esp + 0x170], 0x1ec708f8
mov dword [esp + 0x174], 0xc1e41f3a
mov dword [esp + 0x178], 0xc02e02c4
mov dword [esp + 0x17c], 0x383bfac2
mov dword [esp + 0x180], 0x9c7ca05
mov dword [esp + 0x184], 0xc4c7c6c1
mov dword [esp + 0x188], 0x2a3d3f39
mov dword [esp + 0x18c], 0xdceb30df
mov dword [esp + 0x190], 0xd0c937cc
mov dword [esp + 0x194], 0xdfd7d6d1
mov dword [esp + 0x198], 0xa8abaaca
mov dword [esp + 0x19c], 0x62b9a6a9
mov dword [esp + 0x1a0], 0x9592b6a6
mov dword [esp + 0x1a4], 0xb396b7b2
mov dword [esp + 0x1a8], 0xb8bbbaa5
mov dword [esp + 0x1ac], 0x5a8eb645
mov dword [esp + 0x1b0], 0x4fb542bd
mov dword [esp + 0x1b4], 0xb48350b9
mov dword [esp + 0x1b8], 0x888b8ab5
mov dword [esp + 0x1bc], 0x908f8e89
mov dword [esp + 0x1c0], 0x867176b9
mov dword [esp + 0x1c4], 0x84878681
mov dword [esp + 0x1c8], 0x7d8f7c77
mov dword [esp + 0x1cc], 0xa962aa99
mov byte [esp + 0x1d0], 0xdc
mov byte [esp + 0x1d5], 0
mov dword [esp + 0x1d1], 0
lea eax, [esp + 0x148]
mov ecx, 0x720a7810
nop
nop
nop
nop
movzx edx, byte [eax]
mov edi, edx
not edi
or edi, 0x9f35b643
lea ebx, [edx + edi]
inc ebx
and edx, 0xffffffbc
xor edx, 0x60ca49bc
or ebx, edx
mov edi, ecx
xor edi, 0x9f35b643
mov edx, ebx
and edx, edi
add edx, edx
add edi, ebx
sub edx, edi
lea edi, [edx + edx]
and edi, 0x58
xor edx, 0x53
sub edx, edi
add dl, 2
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x720a7782
jne 0x420270
mov dword [esp + 0x78], 0x8ccededa
mov dword [esp + 0x7c], 0x54892b74
mov dword [esp + 0x80], 0x615884c4
mov dword [esp + 0x84], 0x150a0b08
mov dword [esp + 0x88], 0x19ea169b
mov dword [esp + 0x8c], 0x756198d8
mov dword [esp + 0x90], 0x191e1f1c
mov dword [esp + 0x94], 0xed6a90d0
mov dword [esp + 0x98], 0xc00e6ba9
mov dword [esp + 0x9c], 0x79766ec6
mov dword [esp + 0xa0], 0x7d7a7b78
mov dword [esp + 0xa4], 0x617e7f7c
mov dword [esp + 0xa8], 0xbcfeeeea
mov dword [esp + 0xac], 0xb6fa0b44
mov dword [esp + 0xb0], 0x36abf76a
mov dword [esp + 0xb4], 0xc53a3b38
mov dword [esp + 0xb8], 0x9a6f40c
mov dword [esp + 0xbc], 0xcdee0f4b
mov dword [esp + 0xc0], 0xc9355804
mov dword [esp + 0xc4], 0xfdcacbc8
mov dword [esp + 0xc8], 0xd1d6d7bc
mov dword [esp + 0xcc], 0x13471bd0
mov dword [esp + 0xd0], 0xf4b17fc
mov dword [esp + 0xd4], 0x7b4f13f0
mov dword [esp + 0xd8], 0xe1e6e7e4
mov dword [esp + 0xdc], 0xc12e7434
mov dword [esp + 0xe0], 0xf96524ec
mov dword [esp + 0xe4], 0xf564a220
mov dword [esp + 0xe8], 0xf1f6f7f4
mov dword [esp + 0xec], 0x35f2f3f0
mov dword [esp + 0xf0], 0xe6ff8577
mov dword [esp + 0xf4], 0x85fafbf8
mov dword [esp + 0xf8], 0xad52124c
mov dword [esp + 0xfc], 0xeeb14b80
mov byte [esp + 0x100], 0x8c
mov word [esp + 0x105], 0
mov dword [esp + 0x101], 0
mov eax, 0xd0b568c1
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x2f4a97b7]
xor ecx, eax
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, edx
add cl, 0x3a
mov byte [esp + eax + 0x2f4a97b7], cl
inc eax
cmp eax, 0xd0b56950
jne 0x420450
lea eax, [esp + 0x148]
lea edx, [esp + 0x78]
lea ecx, [esp + 0x138]
push eax
push 0x88
push edx
lea edi, [esp + 0x44]
push edi
call fcn.0043f8d0
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], eax
or eax, edx
je 0x4211a9
mov dword [esp + 0x148], 0x9f0f5e4
mov byte [esp + 0x14c], 4
mov dword [esp + 0x14d], 0
mov byte [esp + 0x151], 0
mov eax, 0x7ef24dc5
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x7ef24c7d]
lea edx, [eax - 0x7ef24d05]
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 0x3f
xor ecx, 0x3f
lea ecx, [ecx + edx*2]
add cl, 0xfc
mov byte [esp + eax - 0x7ef24c7d], cl
inc eax
cmp eax, 0x7ef24dcf
jne 0x4204e0
movzx eax, byte [esp + 0x148]
test al, al
je 0x42053b
lea ecx, [esp + 0x149]
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 0x420530
mov byte [esi], 0
lea eax, [esp + 0x130]
lea ecx, [esp + 0x138]
push 0
push 8
push eax
push edi
call fcn.0043f8d0
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
or eax, edx
je 0x4211a9
mov dword [esp + 0x148], 0x67c0c0f2
mov byte [esp + 0x14c], 0x68
mov word [esp + 0x14d], 0
mov byte [esp + 0x14f], 0
mov eax, 0x8991c317
mov ecx, 0xe8
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x766e3e31]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
mov edi, edx
and edi, 0xc
mov ebx, edx
xor ebx, 0x8c
lea ebx, [ebx + edi*2]
and edx, 1
xor ebx, 1
or ebx, edx
add ebx, edx
mov byte [esp + eax + 0x766e3e31], bl
inc eax
dec ecx
cmp eax, 0x8991c31f
jne 0x4205a0
movzx eax, byte [esp + 0x148]
test al, al
je 0x4205fb
lea ecx, [esp + 0x149]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4205f0
mov byte [esi], 0
lea eax, [esp + 0x128]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x38]
push 0
push 8
push eax
push edx
call fcn.0043eea0
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x4211a9
mov dword [esp + 0x148], 0xe7060703
mov byte [esp + 0x14c], 0xe8
mov dword [esp + 0x14d], 0
mov eax, 0x5fbd2da7
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x5fbd2c5f]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xbd
mov byte [esp + eax - 0x5fbd2c5f], cl
inc eax
cmp eax, 0x5fbd2db0
jne 0x420650
movzx eax, byte [esp + 0x148]
test al, al
je 0x42069b
lea ecx, [esp + 0x149]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420690
mov byte [esi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x110], ecx
xor ebx, ebx
cmp eax, ecx
je 0x4211ab
lea edi, [esp + 0x38]
jmp 0x4206db
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x114]
add eax, 8
cmp eax, dword [esp + 0x110]
je 0x421273
mov dword [esp + 0xc], ebx
mov ecx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 0x114], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
push 0x198
push 0
lea eax, [esp + 0x150]
push eax
call fcn.0040cc30
add esp, 0xc
xor ebx, ebx
jmp 0x42071e
lea edi, [esp + 0x38]
inc ebx
cmp ebx, 0xb
je 0x420910
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x154]
push eax
push dword [esp + 0x3c]
push dword [esp + 0x18]
call fcn.0043ed30
test eax, eax
js 0x420714
cmp byte [esp + 0x218], 0
sete al
xor al, 0x31
cmp byte [esp + 0x219], 0
mov byte [esp + 0x60], al
sete cl
xor cl, 0x31
mov byte [esp + 0x61], cl
cmp byte [esp + 0x21a], 0
sete cl
xor cl, 0x31
mov byte [esp + 0x62], cl
cmp byte [esp + 0x2d8], 0
sete cl
xor cl, 0x31
mov byte [esp + 0x63], cl
mov word [esp + 0x64], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + ecx], al
movzx eax, byte [esp + ecx + 0x61]
inc ecx
test al, al
jne 0x4207a0
mov byte [esi + ecx], 0
movzx eax, byte [esp + 0x21a]
test al, al
jne 0x420930
mov edx, dword [esp + 0x18c]
or edx, dword [esp + 0x188]
je 0x420930
add esi, ecx
mov dword [esp + 0x78], 0xcbada45d
mov byte [esp + 0x7c], 0xc0
lea eax, [esp + 0x7d]
mov dword [eax + 3], 0
mov dword [eax], 0
mov eax, 0xcc880851
mov ecx, 0xae
nop
movzx edx, byte [esp + eax + 0x3377f827]
lea edi, [edx + edx]
not edi
add edi, edx
and edi, eax
and edx, ecx
or edx, edi
add edx, 0x289b9508
mov edi, edx
and edi, 0x6a
xor edx, 0x6a
lea edx, [edx + edi*2]
add dl, 0xf9
mov byte [esp + eax + 0x3377f827], dl
inc eax
dec ecx
cmp eax, 0xcc88085d
jne 0x420800
movzx eax, byte [esp + 0x78]
test al, al
je 0x42085b
lea ecx, [esp + 0x79]
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 0x420850
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x78], 0xe0e7e6e5
mov word [esp + 0x7c], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
and edi, 2
mov edx, ecx
xor edx, 0xd9
add edx, edi
xor dl, byte [esp + ecx + 0x78]
add dl, 0xc3
mov byte [esp + ecx + 0x78], dl
inc ecx
add eax, 2
cmp ecx, 6
jne 0x420890
mov eax, dword [0x44fabc]
test eax, eax
je 0x420710
mov ecx, dword [esp + 0x78]
xor edx, edx
mov edi, dword [0x44fac0]
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x4208e3
inc edx
cmp eax, edx
jne 0x4208d0
jmp 0x420710
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x420710
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x44fac4]
push eax
call fcn.00440ac0
add esp, 0x14
jmp 0x420710
movzx eax, byte [esp + 0x21a]
test al, al
jne 0x42093a
jmp 0x4206c0
add esi, ecx
test al, al
je 0x4206c0
call fcn.00404fc0
mov dword [esp + 0x2c], eax
push eax
call fcn.00404970
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x78], 0x4f9195ab
mov byte [esp + 0x7c], 0x38
lea eax, [esp + 0x7d]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0x1d810a0b
mov edi, 0xe27ef5f4
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x1d810993]
mov ecx, edi
and ecx, 0x806ec461
mov edx, eax
and edx, 0x1480001e
or edx, ecx
xor edx, ebx
xor edx, 0x7690319e
mov ebx, 0xdc
sub ebx, edx
add edx, 3
and edx, 0x14
and ebx, 0xeb
sub ebx, edx
mov byte [esp + eax - 0x1d810993], bl
inc eax
dec edi
cmp eax, 0x1d810a16
jne 0x420980
movzx eax, byte [esp + 0x78]
test al, al
lea edi, [esp + 0x38]
je 0x4209eb
lea ecx, [esp + 0x79]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4209e0
mov byte [esi], 0
mov eax, dword [esp + 0x180]
mov edx, dword [esp + 0x184]
mov ecx, eax
or ecx, edx
je 0x420a40
mov ecx, edi
push 0
push 0
push 0x40
mov ebx, edi
lea edi, [esp + 0x84]
push edi
push edx
push eax
call fcn.0043ed30
test eax, eax
js 0x420a40
mov ecx, ebx
mov edx, edi
push dword [esp + 4]
call fcn.00422bd0
add esp, 4
jmp 0x420a42
xor eax, eax
mov dword [esp + 0x78], 0x2b405847
mov byte [esp + 0x7c], 0x30
mov dword [esp + 0x7d], 0
mov ecx, 0x35
mov edx, 0xf6ee0fca
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x43]
mov edi, edx
or edi, ebx
not ebx
or ebx, ecx
and ebx, edi
mov edi, ebx
not edi
and edi, 0x76
xor ebx, 9
lea ebx, [ebx + edi*2]
inc bl
mov byte [esp + ecx + 0x43], bl
inc ecx
dec edx
cmp ecx, 0x3e
jne 0x420a70
movzx ecx, byte [esp + 0x78]
test cl, cl
je 0x420ac0
lea edx, [esp + 0x79]
mov ebx, dword [esp + 0xc]
lea edi, [esp + 0x38]
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x420ab0
jmp 0x420ac8
mov ebx, dword [esp + 0xc]
lea edi, [esp + 0x38]
mov byte [esi], 0
test al, al
je 0x420c60
push dword [esp + 4]
call fcn.00404db0
add esp, 4
test eax, eax
je 0x420c6d
mov eax, dword [esp + 0x2a0]
mov edx, dword [esp + 0x2a4]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x12c]
push ebx
push edx
push eax
call fcn.0043ed30
test eax, eax
js 0x420e1c
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x124]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x124]
push ebx
push edx
push eax
call fcn.0043ed30
test eax, eax
js 0x420e1c
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0x6c]
push edi
push edx
push eax
call fcn.0043ed30
test eax, eax
js 0x420e1c
cmp byte [esp + 0x77], 0
lea edi, [esp + 0x60]
js 0x420c78
mov dword [esp + 0x10], 0xe16be70b
mov dword [esp + 0x14], 0xfd10e31f
mov dword [esp + 0x18], 0xf922ffdc
mov dword [esp + 0x1c], 0xf576fb1b
mov dword [esp + 0x20], 0xf112f717
mov word [esp + 0x24], 0xf3f0
mov dword [esp + 0x26], 0
mov eax, 0x49ed3929
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x49ed3919]
xor ecx, eax
mov edx, ecx
and edx, 0x32
xor ecx, 0x32
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x49ed3919], cl
inc eax
cmp eax, 0x49ed3943
jne 0x420bd0
movzx ebx, word [esp + 0x10]
test bx, bx
mov dword [esp + 0x30], edi
je 0x420ccf
lea eax, [esp + 0x10]
mov edx, edi
mov dword [esp + 4], edi
jmp 0x420c2c
movzx ebx, word [eax]
test bx, bx
je 0x420ce2
movzx edi, word [edx]
test di, di
je 0x420cd7
add edx, 2
add eax, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp di, bx
je 0x420c50
mov dword [esp + 4], ecx
mov edx, ecx
je 0x420c20
lea eax, [esp + 0x10]
jmp 0x420c20
mov dword [esp + 4], 0
jmp 0x421187
mov al, 1
mov dword [esp + 4], eax
jmp 0x421187
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov eax, ebx
or eax, edi
je 0x420e1c
mov eax, dword [esp + 0x68]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp + 4], ecx
mov eax, ecx
jns 0x420ca3
mov eax, 0xffffffff
push eax
call fcn.0040cbb0
add esp, 4
lea ecx, [esp + 0x38]
push 0
push 0
push dword [esp + 0xc]
push eax
push edi
mov edi, eax
push ebx
call fcn.0043ed30
test eax, eax
jns 0x420b8c
jmp 0x420e1c
mov eax, edi
lea edx, [esp + 0x78]
jmp 0x420cf4
lea edx, [esp + 0x78]
mov ebx, edx
jmp 0x420dfd
lea edx, [esp + 0x78]
mov ebx, edx
mov eax, dword [esp + 4]
test eax, eax
je 0x420dfd
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x420dfd
lea ecx, [eax + 0x14]
mov dword [esp + 8], ecx
xor ecx, ecx
nop
nop
nop
nop
cmp di, 0x5c
je 0x420d2a
movzx edi, word [eax + ecx + 0x16]
add ecx, 2
test di, di
jne 0x420d10
mov ebx, edx
jmp 0x420dfd
mov ebx, edx
test ecx, ecx
mov edi, dword [esp + 8]
je 0x420df8
sar ecx, 1
mov eax, ecx
and eax, 3
je 0x420d90
mov ebx, edx
xor edx, edx
mov dword [esp + 0x34], eax
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 8]
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 + 0x34]
mov dword [esp + 8], edi
movzx edi, word [esp + 4]
mov word [ebx], di
add ebx, 2
inc edx
cmp eax, edx
jne 0x420d50
mov eax, ecx
sub eax, edx
lea edx, [esp + 0x78]
mov edi, dword [esp + 8]
jmp 0x420d94
mov ebx, edx
mov eax, ecx
dec ecx
cmp ecx, 3
jb 0x420df8
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 0x420d9a
lea edx, [esp + 0x78]
mov word [ebx], 0
cmp byte [esp + 0x77], 0
jns 0x420e14
push dword [esp + 0x30]
call fcn.0040cbc0
lea edx, [esp + 0x7c]
add esp, 4
cmp edx, ebx
jne 0x420ed6
mov dword [esp + 0x10], 0x23bc21d9
mov dword [esp + 0x14], 0x27b925c7
mov dword [esp + 0x18], 0xdb44d93f
mov dword [esp + 0x1c], 0xdf4add45
mov dword [esp + 0x20], 0xd3d2d14f
mov word [esp + 0x24], 0
mov eax, 0xf8
mov ecx, 0xa6f1407
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], ecx
movzx edx, byte [esp + eax - 0xe8]
lea edi, [edx + edx]
not edi
add edi, edx
mov ebx, edx
mov ecx, dword [esp + 4]
xor ecx, edx
sub edx, ecx
mov ecx, dword [esp + 4]
not ebx
or edi, ebx
and ebx, ecx
add edx, ebx
and edi, eax
or edx, edi
add dl, 0x28
mov byte [esp + eax - 0xe8], dl
inc eax
dec ecx
cmp eax, 0x10e
jne 0x420e60
movzx eax, word [esp + 0x10]
lea edx, [esp + 0x78]
mov ebx, edx
test ax, ax
je 0x420ed1
lea ecx, [esp + 0x12]
mov ebx, edx
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 0x420ec0
mov word [ebx], 0
mov eax, ebx
sub eax, edx
mov ecx, eax
shr ecx, 2
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, eax
and ecx, 0xfffffffc
lea edx, [esi + ecx]
mov dword [esp + 4], edx
lea edi, [esp + ecx]
add edi, 0x78
mov dword [esp + 0x34], eax
mov edx, eax
and edx, 3
mov ecx, edx
shr ecx, 1
mov dword [esp + 8], edi
mov eax, edi
mov edi, dword [esp + 4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, edx
xor eax, 0xfffffffe
mov ecx, edx
or ecx, 1
and ecx, eax
je 0x420f82
not ebx
or ebx, 0xfffffffe
lea edi, [ebx + edx]
mov dword [esp + 0x30], edi
mov eax, dword [esp + 8]
movzx eax, byte [eax + edi + 1]
mov edi, dword [esp + 4]
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x30]
mov byte [edi + edx + 1], al
mov eax, dword [esp + 0x10c]
cmp ecx, 1
je 0x420f82
lea edx, [ebx + eax]
inc edx
mov eax, dword [esp + 8]
movzx eax, byte [eax + edx + 1]
mov edi, dword [esp + 4]
mov byte [edi + edx + 1], al
cmp ecx, 2
je 0x420f82
mov eax, dword [esp + 8]
movzx eax, byte [eax + edx + 2]
mov ecx, dword [esp + 4]
mov byte [ecx + edx + 2], al
mov dword [esp + 0x10], 0x9b77852e
mov word [esp + 0x14], 0x1522
lea eax, [esp + 0x16]
mov word [eax + 4], 0
mov dword [eax], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 6
xor al, byte [esp + ecx + 0x10]
add al, 0xe2
mov byte [esp + ecx + 0x10], al
inc ecx
cmp ecx, 0xc
jne 0x420fb0
mov ebx, dword [esp + 0x34]
add esi, ebx
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x420feb
lea edx, [esp + 0x11]
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 0x420fe0
mov byte [esi], 0
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x421000
sar ecx, 1
sar ebx, 1
lea eax, [ebx + ecx]
add eax, 0xa
test eax, eax
jns 0x421020
mov eax, 0xffffffff
jmp 0x421029
add ebx, ecx
lea eax, [ebx*2 + 0x14]
push eax
call fcn.0040cbb0
add esp, 4
movzx ecx, word [edi]
mov ebx, eax
test cx, cx
je 0x421061
add edi, 2
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x421050
mov word [ebx], 0x2f
mov dword [esp + 0x10], 0xb1c08fdd
mov dword [esp + 0x14], 0xb52bb3d7
mov dword [esp + 0x18], 0xb922b79a
mov dword [esp + 0x1c], 0xbd2ebb20
mov word [esp + 0x20], 0xbfbc
mov dword [esp + 0x22], 0
mov ecx, 0x9d
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x8d]
mov edi, ecx
and edi, edx
add edi, edi
sub edx, edi
add edx, ecx
add edx, 0xee4803de
mov edi, edx
xor edi, 0xf0
and edx, 0xf
add edx, edx
sub edx, edi
inc dl
mov byte [esp + ecx - 0x8d], dl
inc ecx
cmp ecx, 0xb3
jne 0x4210a0
add ebx, 2
movzx ecx, word [esp + 0x78]
test cx, cx
je 0x421101
lea edx, [esp + 0x7a]
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4210f0
mov word [ebx], 0
movzx ecx, word [esp + 0x10]
test cx, cx
mov dword [esp + 8], eax
je 0x421131
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421120
mov word [ebx], 0
mov ebx, 0xffffffff
push dword [esp + 0x2c]
call fcn.00405c00
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x421150
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x10]
push ebx
call fcn.0040d5f0
mov dword [esp + 4], eax
push edi
call fcn.00405c90
add esp, 4
push ebx
call fcn.0040cbc0
add esp, 4
mov ebx, dword [esp + 0xc]
lea edi, [esp + 0x38]
push dword [esp + 0x2c]
call fcn.00404df0
add esp, 4
and bl, 1
or bl, byte [esp + 4]
jmp 0x4206c4
mov dword [esp + 0xc], 0
jmp 0x4211af
xor ebx, ebx
mov dword [esp + 0xc], ebx
lea ecx, [esp + 0x38]
call fcn.0043e4f0
mov dword [esp + 0x148], 0x198e89fd
mov byte [esp + 0x14c], 0x1c
mov word [esp + 0x14d], 0
mov byte [esp + 0x14f], 0
mov eax, 0x28b478c4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x28b4777c]
mov ecx, eax
and ecx, edx
mov ebx, ecx
or ebx, 0xfffffffd
inc ebx
mov edi, ecx
and edi, 0xffffffcd
imul edi, ebx
mov ebx, ecx
and ebx, 2
or ecx, 2
imul ecx, ebx
add edi, edx
sub edi, ecx
add edi, eax
mov ecx, edi
and ecx, 0x2b
xor edi, 0x2b
lea ecx, [edi + ecx*2]
inc cl
mov byte [esp + eax - 0x28b4777c], cl
inc eax
cmp eax, 0x28b478cc
jne 0x4211f0
movzx eax, byte [esp + 0x148]
test al, al
je 0x42125d
lea ecx, [esp + 0x149]
mov edx, dword [esp + 0xc]
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421250
jmp 0x421261
mov edx, dword [esp + 0xc]
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x4c]
and bl, 1
test eax, eax
je 0x4211ab
cmp eax, dword [esp + 0x50]
je 0x4211ab
push eax
call fcn.0040cbc0
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x4211ab