Function at 0x4197e0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa0
mov dword [esp + 0x48], 0
mov dword [esp], 0
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0xcf
mov ecx, 0x86acb530
movzx esi, byte [esp + eax - 0xcb]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
mov esi, edx
not esi
mov edi, 0xf3
sub edi, edx
not edi
and esi, 1
and edi, 0xfe
and edx, 0xfe
add edx, 0xc
or edx, edi
not edx
add edx, esi
mov byte [esp + eax - 0xcb], dl
inc eax
dec ecx
cmp eax, 0xd4
jne 0x419810
mov eax, dword [esp + 4]
mov ecx, dword [0x44aef0]
test ecx, ecx
je 0x4198a2
xor edx, edx
mov esi, dword [0x44aef4]
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x89bc83a7
je 0x419880
inc edx
cmp ecx, edx
jne 0x419870
jmp 0x4198a2
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x4198a2
mov eax, esp
push eax
push 0
push 0x28
push 0xfffffffffffffffe
push 0x10
push ecx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x1c
cmp eax, 0xc000007c
jne 0x419960
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0xcf
mov ecx, 0x86acb530
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xcb]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
mov esi, edx
not esi
mov edi, 0xf3
sub edi, edx
not edi
and esi, 1
and edi, 0xfe
and edx, 0xfe
add edx, 0xc
or edx, edi
not edx
add edx, esi
mov byte [esp + eax - 0xcb], dl
inc eax
dec ecx
cmp eax, 0xd4
jne 0x4198d0
mov eax, dword [0x44aef0]
test eax, eax
je 0x419960
mov ecx, dword [esp + 4]
xor edx, edx
mov esi, dword [0x44aef4]
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xeb857808
je 0x419940
inc edx
cmp eax, edx
jne 0x419930
jmp 0x419960
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x419960
mov ecx, esp
push ecx
push 0x28
push 0xffffffffffffffff
push 0xc
push eax
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x18
mov ecx, dword [esp]
test ecx, ecx
je 0x419fbe
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0xcf
mov edx, 0x86acb530
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xcb]
mov ebx, eax
xor ebx, edx
and ebx, esi
xor ebx, edx
mov esi, ebx
not esi
mov edi, 0xf3
sub edi, ebx
not edi
and esi, 1
and edi, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, edi
not ebx
add ebx, esi
mov byte [esp + eax - 0xcb], bl
inc eax
dec edx
cmp eax, 0xd4
jne 0x419990
mov eax, dword [esp + 4]
mov edx, dword [0x44aef0]
test edx, edx
je 0x419a25
xor esi, esi
mov edi, dword [0x44aef4]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x8869e8e9
je 0x419a00
inc esi
cmp edx, esi
jne 0x4199f0
jmp 0x419a25
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x419a25
lea eax, [esp + 0x3c]
push eax
push 0
push 0
push 1
push ecx
push 0x14
push edx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x20
cmp eax, 0xc0000023
jne 0x419b2e
push dword [esp + 0x3c]
call fcn.004394c0
add esp, 4
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp]
mov dword [esp + 0x58], ecx
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov ecx, 0xcf
mov edi, 0x86acb530
nop
nop
movzx ebp, byte [esp + ecx - 0xcb]
mov ebx, ecx
xor ebx, edi
and ebx, ebp
xor ebx, edi
mov ebp, ebx
not ebp
mov edx, 0xf3
sub edx, ebx
not edx
and ebp, 1
and edx, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, edx
not ebx
add ebx, ebp
mov byte [esp + ecx - 0xcb], bl
inc ecx
dec edi
cmp ecx, 0xd4
jne 0x419a60
mov ecx, dword [esp + 4]
mov edi, dword [0x44aef0]
test edi, edi
je 0x419afd
xor ebx, ebx
mov ebp, dword [0x44aef4]
nop
nop
nop
nop
cmp dword [ebp + ebx*8], 0x8869e8e9
je 0x419ad1
inc ebx
cmp edi, ebx
jne 0x419ac0
jmp 0x419afd
mov edi, dword [ebp + ebx*8 + 4]
cmp edi, ecx
je 0x419afd
lea ecx, [esp + 0x3c]
push ecx
push esi
push eax
push 1
push dword [esp + 0x68]
push 0x14
push edi
push dword [0x44aef8]
mov esi, eax
call fcn.0043be00
add esp, 0x20
mov ecx, eax
mov eax, esi
test ecx, ecx
js 0x419b25
mov ecx, dword [eax]
test ecx, ecx
je 0x419b25
cmp byte [ecx], 1
jne 0x419b25
cmp byte [ecx + 1], 0xf
ja 0x419b25
cmp byte [ecx + 7], 5
jne 0x419b25
cmp byte [ecx + 8], 0x12
jne 0x419b25
mov ecx, dword [esp]
mov dword [esp + 0x48], ecx
push eax
call fcn.00439550
add esp, 4
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x419fc0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov eax, dword [0x449bc8]
mov dword [esp + 4], 0x77da09a9
mov dword [esp + 8], 0x73d375ee
mov dword [esp + 0xc], 0x7fd771e0
mov dword [esp + 0x10], 0x7b247d23
mov dword [esp + 0x14], 0x67ca792a
mov dword [esp + 0x18], 0x63f665f0
mov word [esp + 0x1c], 0x6160
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
mov ecx, 0xbe
mov edx, 0x9eb55041
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0xba]
mov edi, ecx
xor edi, edx
and edi, esi
xor edi, edx
mov esi, 0x198a9148
sub esi, edi
mov ebx, esi
xor ebx, 0xfe
or esi, 1
and ebx, esi
add ebx, esi
mov byte [esp + ecx - 0xba], bl
inc ecx
dec edx
cmp ecx, 0xde
jne 0x419bb0
lea esi, [esp + 4]
push 0x800
push 0
push esi
call eax
lea ecx, [esp + 0x84]
push eax
call fcn.0043a9b0
test al, al
je 0x419db7
mov dword [esp + 0x74], 1
mov dword [esp + 0x80], 2
push 0x367fa9e7
push dword [esp + 0x88]
call fcn.0043dad0
add esp, 8
mov dword [esp + 4], 0xb75b8977
mov dword [esp + 8], 0xb327b57d
mov dword [esp + 0xc], 0xbf53b120
mov dword [esp + 0x10], 0xbb25bd22
mov dword [esp + 0x14], 0xa734b92b
mov dword [esp + 0x18], 0xa33ea545
mov dword [esp + 0x1c], 0xaf5ea14d
mov dword [esp + 0x20], 0xab43ad32
mov dword [esp + 0x24], 0x57bfa932
mov dword [esp + 0x28], 0x53bf55c0
mov dword [esp + 0x2c], 0x5fb351bb
mov word [esp + 0x30], 0x5d5c
mov dword [esp + 0x32], 0
mov word [esp + 0x36], 0
mov ecx, 0x77f023a1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi]
lea edi, [edx + edx]
not edi
add edi, edx
and edi, 0xac79b9c5
lea ebx, [ecx - 0x80000000]
and ebx, 0xa47021c5
mov ebp, ecx
and ebp, 0x5380023a
or ebp, ebx
xor edx, 0xac79b9c5
or edx, edi
xor edx, ebp
xor edx, 0x5386463a
add edx, 0xd7b0b229
mov edi, edx
and edi, 1
xor edx, 1
lea edx, [edx + edi*2]
mov byte [esi], dl
inc esi
dec ecx
cmp ecx, 0x77f0236d
jne 0x419cb0
lea ecx, [esp + 0x78]
lea edx, [esp + 4]
push ecx
push edx
push 0
call eax
test eax, eax
je 0x419f27
mov ecx, dword [esp]
mov dword [esp + 0x64], 0xd8dbdac5
mov byte [esp + 0x68], 0
mov eax, 0xcf
mov edx, 0x86acb530
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x6b]
mov ebx, eax
xor ebx, edx
and ebx, esi
xor ebx, edx
mov esi, ebx
not esi
mov edi, 0xf3
sub edi, ebx
not edi
and esi, 1
and edi, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, edi
not ebx
add ebx, esi
mov byte [esp + eax - 0x6b], bl
inc eax
dec edx
cmp eax, 0xd4
jne 0x419d40
mov eax, dword [esp + 0x64]
mov edx, dword [0x44aef0]
test edx, edx
je 0x419e7e
xor esi, esi
mov edi, dword [0x44aef4]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x845fa972
je 0x419e57
inc esi
cmp edx, esi
jne 0x419da0
jmp 0x419e7e
mov ecx, dword [esp]
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0xcf
mov edx, 0x86acb530
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xcb]
mov ebx, eax
xor ebx, edx
and ebx, esi
xor ebx, edx
mov esi, ebx
not esi
mov edi, 0xf3
sub edi, ebx
not edi
and esi, 1
and edi, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, edi
not ebx
add ebx, esi
mov byte [esp + eax - 0xcb], bl
inc eax
dec edx
cmp eax, 0xd4
jne 0x419de0
mov eax, dword [0x44aef0]
test eax, eax
je 0x419fbe
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44aef4]
nop
nop
cmp dword [edi + esi*8], 0x1b6183f2
je 0x419fcb
inc esi
cmp eax, esi
jne 0x419e40
jmp 0x419fbe
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x419e7e
lea eax, [esp + 0x74]
push 0
push 0
push 0x10
push eax
push 0
push ecx
push 0x18
push edx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x24
test eax, eax
js 0x419f27
push dword [esp + 0x84]
call dword [0x449cdc]
mov eax, dword [esp]
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov ecx, 0xcf
mov edx, 0x86acb530
nop
nop
nop
movzx esi, byte [esp + ecx - 0xcb]
mov ebx, ecx
xor ebx, edx
and ebx, esi
xor ebx, edx
mov esi, ebx
not esi
mov edi, 0xf3
sub edi, ebx
not edi
and esi, 1
and edi, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, edi
not ebx
add ebx, esi
mov byte [esp + ecx - 0xcb], bl
inc ecx
dec edx
cmp ecx, 0xd4
jne 0x419eb0
mov ecx, dword [0x44aef0]
test ecx, ecx
je 0x41a005
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44aef4]
cmp dword [edi + esi*8], 0x1b6183f2
je 0x419feb
inc esi
cmp ecx, esi
jne 0x419f10
jmp 0x41a005
push dword [esp + 0x84]
call dword [0x449cdc]
mov ecx, dword [esp]
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0xcf
mov edx, 0x86acb530
nop
nop
movzx esi, byte [esp + eax - 0xcb]
mov ebx, eax
xor ebx, edx
and ebx, esi
xor ebx, edx
mov esi, ebx
not esi
mov edi, 0xf3
sub edi, ebx
not edi
and esi, 1
and edi, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, edi
not ebx
add ebx, esi
mov byte [esp + eax - 0xcb], bl
inc eax
dec edx
cmp eax, 0xd4
jne 0x419f50
mov eax, dword [0x44aef0]
test eax, eax
je 0x419fbe
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0x44aef4]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x1b6183f2
je 0x419fcb
inc esi
cmp eax, esi
jne 0x419fb0
xor eax, eax
add esp, 0xa0
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [edi + esi*8 + 4]
xor eax, eax
cmp esi, edx
je 0x419fc0
push ecx
push 4
push esi
push dword [0x44aef8]
call fcn.0043be00
xor eax, eax
add esp, 0x10
jmp 0x419fc0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x41a005
push eax
push 4
push ecx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x10
mov dword [esp + 0x60], 0
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0xcf
mov ecx, 0x86acb530
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xcb]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
mov esi, edx
not esi
mov edi, 0xf3
sub edi, edx
not edi
and esi, 1
and edi, 0xfe
and edx, 0xfe
add edx, 0xc
or edx, edi
not edx
add edx, esi
mov byte [esp + eax - 0xcb], dl
inc eax
dec ecx
cmp eax, 0xd4
jne 0x41a030
mov eax, dword [esp + 4]
mov ecx, dword [0x44aef0]
test ecx, ecx
je 0x41a0c4
xor edx, edx
mov esi, dword [0x44aef4]
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x61813e67
je 0x41a0a0
inc edx
cmp ecx, edx
jne 0x41a090
jmp 0x41a0c4
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x41a0c4
lea eax, [esp + 0x60]
push eax
push 0
push 0
push 5
push 0x10
push ecx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x1c
mov dword [esp + 4], 0xe1262738
mov dword [esp + 8], 0
mov esi, 0x8f1d989
mov edx, 0xf70e2676
nop
nop
movzx ebx, byte [esp + esi - 0x8f1d985]
mov ecx, esi
and ecx, ebx
add ecx, ecx
sub ecx, ebx
add ecx, edx
and ecx, esi
add cl, cl
sub bl, cl
movzx ecx, bl
add ecx, esi
add cl, 0x53
mov byte [esp + esi - 0x8f1d985], cl
inc esi
dec edx
cmp esi, 0x8f1d991
jne 0x41a0e0
cmp eax, dword [esp + 4]
jne 0x41a931
push dword [esp + 0x60]
call fcn.004394c0
add esp, 4
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0xcf
mov edx, 0x86acb530
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0xcb]
mov ebx, eax
xor ebx, edx
and ebx, esi
xor ebx, edx
mov esi, ebx
not esi
mov edi, 0xf3
sub edi, ebx
not edi
and esi, 1
and edi, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, edi
not ebx
add ebx, esi
mov byte [esp + eax - 0xcb], bl
inc eax
dec edx
cmp eax, 0xd4
jne 0x41a150
mov eax, dword [esp + 4]
mov edx, dword [0x44aef0]
test edx, edx
je 0x41a1e2
xor esi, esi
mov edi, dword [0x44aef4]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x61813e67
je 0x41a1c0
inc esi
cmp edx, esi
jne 0x41a1b0
jmp 0x41a1e2
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x41a1e2
push 0
push ecx
push dword [esp + 0x5c]
push 5
push 0x10
push edx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x1c
test eax, eax
js 0x41a925
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov esi, dword [esp + 0x54]
mov ebx, dword [esi]
lea edi, [esp + 0x64]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + ebx + 0x44]
mov dword [esp + 0x6c], eax
mov ecx, edi
push 0x1000
call fcn.00439860
test eax, eax
js 0x41a909
mov dword [esp + 0x58], ebx
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0xcf
mov edx, 0x86acb530
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0xcb]
mov ebx, eax
xor ebx, edx
and ebx, edi
xor ebx, edx
mov edi, ebx
not edi
mov ebp, 0xf3
sub ebp, ebx
not ebp
and edi, 1
and ebp, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, ebp
not ebx
add ebx, edi
mov byte [esp + eax - 0xcb], bl
inc eax
dec edx
cmp eax, 0xd4
jne 0x41a260
mov eax, dword [esp + 4]
mov edx, dword [0x44aef0]
test edx, edx
je 0x41a2f1
xor edi, edi
mov ebx, dword [0x44aef4]
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xeb857808
je 0x41a2d0
inc edi
cmp edx, edi
jne 0x41a2c0
jmp 0x41a2f1
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x41a2f1
lea eax, [esp + 0x44]
push eax
push 0xa
push ecx
push 0xc
push edx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x18
test eax, eax
js 0x41a8fa
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov eax, 0xcf
mov edx, 0x86acb530
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0xcb]
mov ebx, eax
xor ebx, edx
and ebx, edi
xor ebx, edx
mov edi, ebx
not edi
mov ebp, 0xf3
sub ebp, ebx
not ebp
and edi, 1
and ebp, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, ebp
not ebx
add ebx, edi
mov byte [esp + eax - 0xcb], bl
inc eax
dec edx
cmp eax, 0xd4
jne 0x41a320
mov eax, dword [esp + 4]
mov edx, dword [0x44aef0]
test edx, edx
je 0x41a3b5
xor edi, edi
mov ebx, dword [0x44aef4]
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x8869e8e9
je 0x41a390
inc edi
cmp edx, edi
jne 0x41a380
jmp 0x41a3b5
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x41a3b5
lea eax, [esp + 0x3c]
push eax
push 0
push 0
push 1
push ecx
push 0x14
push edx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x20
cmp eax, 0xc0000023
jne 0x41a84b
push dword [esp + 0x3c]
call fcn.004394c0
add esp, 4
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x4c], ecx
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov edx, 0xcf
mov edi, 0x86acb530
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx - 0xcb]
mov ecx, edx
xor ecx, edi
and ecx, ebx
xor ecx, edi
mov ebx, ecx
not ebx
mov ebp, 0xf3
sub ebp, ecx
not ebp
and ebx, 1
and ebp, 0xfe
and ecx, 0xfe
add ecx, 0xc
or ecx, ebp
not ecx
add ecx, ebx
mov byte [esp + edx - 0xcb], cl
inc edx
dec edi
cmp edx, 0xd4
jne 0x41a400
mov ecx, dword [esp + 4]
mov edx, dword [0x44aef0]
test edx, edx
je 0x41a49f
xor edi, edi
mov ebx, dword [0x44aef4]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x8869e8e9
je 0x41a470
inc edi
cmp edx, edi
jne 0x41a460
jmp 0x41a49f
mov edx, dword [ebx + edi*8 + 4]
cmp edx, ecx
je 0x41a49f
lea ecx, [esp + 0x3c]
push ecx
push dword [esp + 0x3c]
push eax
push 1
push dword [esp + 0x5c]
push 0x14
push edx
push dword [0x44aef8]
mov edi, eax
call fcn.0043be00
add esp, 0x20
mov ecx, eax
mov eax, edi
test ecx, ecx
js 0x41a842
mov ecx, dword [eax]
test ecx, ecx
je 0x41a842
cmp byte [ecx], 1
jne 0x41a842
cmp byte [ecx + 1], 0xf
ja 0x41a842
cmp byte [ecx + 7], 5
jne 0x41a842
cmp byte [ecx + 8], 0x12
jne 0x41a842
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x4c], ecx
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov ecx, 0xcf
mov edi, 0x86acb530
movzx edx, byte [esp + ecx - 0xcb]
mov ebx, ecx
xor ebx, edi
and ebx, edx
xor ebx, edi
mov edx, ebx
not edx
mov ebp, 0xf3
sub ebp, ebx
not ebp
and edx, 1
and ebp, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, ebp
not ebx
add ebx, edx
mov byte [esp + ecx - 0xcb], bl
inc ecx
dec edi
cmp ecx, 0xd4
jne 0x41a4f7
mov ecx, dword [esp + 4]
mov edx, dword [0x44aef0]
test edx, edx
je 0x41a591
xor edi, edi
mov ebx, dword [0x44aef4]
cmp dword [ebx + edi*8], 0x8869e8e9
je 0x41a563
inc edi
cmp edx, edi
jne 0x41a553
jmp 0x41a591
mov edi, dword [ebx + edi*8 + 4]
cmp edi, ecx
je 0x41a591
lea ecx, [esp + 0x5c]
push ecx
push 0
push 0
push 3
push dword [esp + 0x5c]
push 0x14
push edi
push dword [0x44aef8]
mov edi, eax
call fcn.0043be00
add esp, 0x20
mov ecx, eax
mov eax, edi
cmp ecx, 0xc0000023
jne 0x41a842
mov dword [esp + 0x4c], eax
push dword [esp + 0x5c]
call fcn.004394c0
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x38], eax
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov edi, 0xcf
mov ecx, 0x86acb530
movzx edx, byte [esp + edi - 0xcb]
mov eax, edi
xor eax, ecx
and eax, edx
xor eax, ecx
mov edx, eax
not edx
mov ebp, 0xf3
sub ebp, eax
not ebp
and edx, 1
and ebp, 0xfe
and eax, 0xfe
add eax, 0xc
or eax, ebp
not eax
add eax, edx
mov byte [esp + edi - 0xcb], al
inc edi
dec ecx
cmp edi, 0xd4
jne 0x41a5d6
mov ecx, dword [esp + 4]
mov eax, dword [0x44aef0]
test eax, eax
je 0x41a642
xor edx, edx
mov edi, dword [0x44aef4]
cmp dword [edi + edx*8], 0x8869e8e9
je 0x41a7c2
inc edx
cmp eax, edx
jne 0x41a630
mov edi, ebx
test ecx, ecx
js 0x41a835
mov ecx, dword [edi]
test ecx, ecx
je 0x41a835
movzx edx, byte [esp + 0x78]
mov dh, byte [esp + 0x79]
movzx eax, byte [esp + 0x7a]
mov ah, byte [esp + 0x7b]
mov byte [esp + 0x38], ah
movzx ebx, byte [esp + 0x7c]
mov byte [esp + 0x50], bl
movzx ebx, byte [esp + 0x7d]
mov byte [esp + 0x42], bl
mov ah, byte [esp + 0x7e]
mov byte [esp + 0x41], ah
mov ah, byte [esp + 0x7f]
mov byte [esp + 0x40], ah
mov ebx, edi
add ebx, 0xb
mov byte [esp + 0x43], al
jmp 0x41a6a3
add ebx, 0xc
dec ecx
je 0x41a835
cmp byte [ebx - 7], dl
jne 0x41a699
cmp byte [ebx - 6], dh
jne 0x41a699
cmp byte [ebx - 5], al
jne 0x41a699
mov ah, byte [esp + 0x38]
cmp byte [ebx - 4], ah
jne 0x41a699
mov ah, byte [esp + 0x50]
cmp byte [ebx - 3], ah
movzx eax, byte [esp + 0x43]
jne 0x41a699
mov ah, byte [esp + 0x42]
cmp byte [ebx - 2], ah
jne 0x41a699
mov ah, byte [esp + 0x41]
cmp byte [ebx - 1], ah
jne 0x41a699
mov ah, byte [esp + 0x40]
cmp byte [ebx], ah
jne 0x41a699
mov dword [esp + 0x38], edi
mov dword [esp + 0x94], 0xc
mov dword [esp + 0x98], 2
mov word [esp + 0x9c], 1
mov dword [esp + 4], 0x18
lea eax, [esp + 8]
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
lea eax, [esp + 0x94]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x8c], 0xd8dbdac5
mov byte [esp + 0x90], 0
mov eax, 0xcf
mov edx, 0x86acb530
movzx edi, byte [esp + eax - 0x43]
mov ebx, eax
xor ebx, edx
and ebx, edi
xor ebx, edx
mov edi, ebx
not edi
mov ebp, 0xf3
sub ebp, ebx
not ebp
and edi, 1
and ebp, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, ebp
not ebx
add ebx, edi
mov byte [esp + eax - 0x43], bl
inc eax
dec edx
cmp eax, 0xd4
jne 0x41a75a
mov eax, dword [esp + 0x8c]
mov edx, dword [0x44aef0]
test edx, edx
je 0x41a825
xor edi, edi
mov ebx, dword [0x44aef4]
cmp dword [ebx + edi*8], 0xa6d9b1ac
je 0x41a7f8
inc edi
cmp edx, edi
jne 0x41a7b2
jmp 0x41a825
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
mov edi, ebx
je 0x41a644
lea ecx, [esp + 0x5c]
push ecx
push dword [esp + 0x54]
push edi
push 3
push dword [esp + 0x48]
push 0x14
push eax
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x20
mov ecx, eax
jmp 0x41a644
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je 0x41a825
lea eax, [esp + 0x48]
push eax
push 2
push 0
lea eax, [esp + 0x10]
push eax
push 0x2000000
push ecx
push 0x18
push edx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x24
test eax, eax
jns 0x41a831
mov dword [esp + 0x48], 0
mov edi, dword [esp + 0x38]
push edi
call fcn.00439550
add esp, 4
mov eax, dword [esp + 0x4c]
push eax
call fcn.00439550
add esp, 4
mov eax, dword [esp + 0x44]
mov dword [esp + 4], 0xd8dbdac5
mov byte [esp + 8], 0
mov ecx, 0xcf
mov edx, 0x86acb530
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0xcb]
mov ebx, ecx
xor ebx, edx
and ebx, edi
xor ebx, edx
mov edi, ebx
not edi
mov ebp, 0xf3
sub ebp, ebx
not ebp
and edi, 1
and ebp, 0xfe
and ebx, 0xfe
add ebx, 0xc
or ebx, ebp
not ebx
add ebx, edi
mov byte [esp + ecx - 0xcb], bl
inc ecx
dec edx
cmp ecx, 0xd4
jne 0x41a870
mov ecx, dword [0x44aef0]
test ecx, ecx
je 0x41a8fa
mov edx, dword [esp + 4]
xor edi, edi
mov ebx, dword [0x44aef4]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x1b6183f2
je 0x41a8e0
inc edi
cmp ecx, edi
jne 0x41a8d0
jmp 0x41a8fa
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x41a8fa
push eax
push 4
push ecx
push dword [0x44aef8]
call fcn.0043be00
add esp, 0x10
lea edi, [esp + 0x64]
mov ecx, edi
call fcn.004399c0
mov ebx, dword [esp + 0x58]
cmp dword [esp + 0x48], 0
jne 0x41a91c
add esi, ebx
mov ebx, dword [esi]
test ebx, ebx
jne 0x41a220
lea ecx, [esp + 0x64]
call fcn.004399c0
push dword [esp + 0x54]
call fcn.00439550
add esp, 4
mov eax, dword [esp + 0x48]
jmp 0x419fc0