Function at 0x41d570
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, 0xa00
mov dword [esp + 0x58], 0x21512753
mov dword [esp + 0x5c], 0x3dae23af
mov dword [esp + 0x60], 0x398a3f87
mov dword [esp + 0x64], 0x35b63b83
mov dword [esp + 0x68], 0x314137bf
mov dword [esp + 0x6c], 0xdbd33bd
mov dword [esp + 0x70], 0x9790fae
mov dword [esp + 0x74], 0x5810b84
mov dword [esp + 0x78], 0x1b907b4
mov dword [esp + 0x7c], 0x1db40347
mov dword [esp + 0x80], 0x19921fa3
mov dword [esp + 0x84], 0x15ab1b91
mov dword [esp + 0x88], 0x11a317a6
mov dword [esp + 0x8c], 0x6da51366
mov dword [esp + 0x90], 0x69d46fdd
mov dword [esp + 0x94], 0x65dd6bd9
mov dword [esp + 0x98], 0x61306712
mov dword [esp + 0x9c], 0x7dee63df
mov dword [esp + 0xa0], 0x79cf7ff5
mov dword [esp + 0xa4], 0x75cf7bca
mov dword [esp + 0xa8], 0x71c977d9
mov dword [esp + 0xac], 0x4dfc73c2
mov dword [esp + 0xb0], 0x49f34ff7
mov dword [esp + 0xb4], 0x454a4bf7
mov byte [esp + 0xba], 0
mov word [esp + 0xb8], 0
lea eax, [esp + 0xb8]
mov dword [esp + 4], eax
lea ecx, [esp + 0x58]
mov edx, 0x1065a9f6
nop
movzx edi, byte [ecx]
lea esi, [edx - 0x1065a900]
or esi, edi
lea eax, [edi + edi]
not eax
add eax, edi
mov ebx, edx
or ebx, edi
and edi, 0x5f
and eax, 0xa0
or eax, edi
xor eax, edx
xor eax, 0x5f
and eax, ebx
not esi
or eax, esi
add al, 0xd3
mov byte [ecx], al
inc ecx
dec edx
cmp edx, 0x1065a993
jne 0x41d690
lea edi, [esp + 0x498]
lea ebx, [esp + 0x58]
mov eax, ebx
mov ecx, 0x18
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x4f8]
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 4]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x58], 0x14151a1b
mov dword [esp + 0x5c], 0
nop
nop
nop
mov ecx, eax
add cl, 6
xor cl, byte [esp + eax + 0x58]
add cl, 0xe2
mov byte [esp + eax + 0x58], cl
inc eax
cmp eax, 8
jne 0x41d710
mov eax, dword [esp + 0x58]
mov ecx, dword [0x44cf90]
test ecx, ecx
je 0x41d774
xor edx, edx
mov edi, dword [0x44cf94]
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x9abdb589
je 0x41d750
inc edx
cmp ecx, edx
jne 0x41d740
jmp 0x41d774
mov ecx, dword [edi + edx*8 + 4]
cmp ecx, eax
je 0x41d774
lea eax, [esp + 0x20]
push eax
push 0
push 0
push 5
push 4
push ecx
push dword [0x44cf98]
call fcn.0043d020
add esp, 0x1c
mov dword [esp + 8], eax
mov dword [esp + 0x58], 0x519e9f98
mov word [esp + 0x5c], 0
mov byte [esp + 0x5e], 0
mov esi, 0x5a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], ebx
movzx edi, byte [ebx]
lea edx, [edi + edi]
not edx
add edx, edi
lea ebx, [esi - 0x47c34000]
mov eax, ebx
xor ebx, edi
not edi
or edx, edi
lea ecx, [edx + edx]
not ecx
add ecx, edx
and eax, edi
add ebx, edi
sub ebx, eax
or ecx, esi
and ebx, ecx
mov al, 0xc6
sub al, bl
mov ebx, dword [esp + 4]
mov byte [ebx], al
inc ebx
dec esi
cmp esi, 0x53
jne 0x41d7a0
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x58]
jne 0x41d860
push dword [esp + 0x20]
call fcn.0043a050
add esp, 4
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x58], 0x14151a1b
mov dword [esp + 0x5c], 0
xor eax, eax
mov ebx, dword [ebp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
add dl, 6
xor dl, byte [esp + eax + 0x58]
add dl, 0xe2
mov byte [esp + eax + 0x58], dl
inc eax
cmp eax, 8
jne 0x41d820
mov eax, dword [esp + 0x58]
mov edx, dword [0x44cf90]
test edx, edx
je 0x41d890
xor esi, esi
mov edi, dword [0x44cf94]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x9abdb589
je 0x41d86e
inc esi
cmp edx, esi
jne 0x41d850
jmp 0x41d890
xor ecx, ecx
xor edx, edx
xor esi, esi
mov ebx, dword [ebp + 0x14]
jmp 0x41ddbf
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x41d890
push 0
push ecx
push dword [esp + 0x20]
push 5
push 4
push edx
push dword [0x44cf98]
call fcn.0043d020
add esp, 0x1c
test eax, eax
js 0x41dd8f
mov esi, dword [esp + 0x18]
mov eax, dword [esi]
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
jmp 0x41d8d1
mov ecx, ebx
call fcn.0043a4d0
mov eax, dword [esi]
test eax, eax
je 0x41dda7
mov ecx, dword [esi + eax + 0x3c]
add esi, eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ecx + eax]
mov edi, dword [ebp + 8]
movzx edi, word [edi + eax]
test dx, dx
je 0x41d8f8
add eax, 2
cmp dx, di
je 0x41d8e0
cmp dx, di
jne 0x41d8c7
mov eax, dword [esi + 0x44]
mov dword [ebx + 8], eax
mov eax, dword [esi + 0xdc]
mov dword [ebx + 0xc], eax
mov ecx, ebx
push 0x410
call fcn.0043a380
test eax, eax
js 0x41d8c7
mov dword [esp + 0x1c], 0
mov ecx, dword [ebx]
mov dword [esp + 0x58], 0x14151a1b
mov dword [esp + 0x5c], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
add dl, 6
xor dl, byte [esp + eax + 0x58]
add dl, 0xe2
mov byte [esp + eax + 0x58], dl
inc eax
cmp eax, 8
jne 0x41d940
mov eax, dword [esp + 0x58]
mov edx, dword [0x44cf90]
test edx, edx
je 0x41d9c0
mov dword [esp + 0x10], ecx
xor edi, edi
mov ebx, dword [0x44cf94]
cmp dword [ebx + edi*8], 0xae6e2b0b
je 0x41d98d
mov ecx, edi
and ecx, 1
xor edi, 1
lea edi, [edi + ecx*2]
cmp edi, edx
jb 0x41d970
mov ebx, dword [ebp + 0x14]
jmp 0x41d9c0
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
mov ebx, dword [ebp + 0x14]
je 0x41d9c0
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push 0x2b
push dword [esp + 0x20]
push 5
push edx
push dword [0x44cf98]
call fcn.0043d020
add esp, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0x19dadbc0
lea ecx, [esp + 0x5c]
mov byte [ecx + 2], 0
mov word [ecx], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xcf
xor dl, byte [esp + ecx + 0x58]
add dl, 0xf5
mov byte [esp + ecx + 0x58], dl
inc ecx
cmp ecx, 7
jne 0x41d9e0
cmp eax, dword [esp + 0x58]
jne 0x41dd48
mov eax, dword [esp + 0x1c]
add eax, 2
push eax
call fcn.0043a050
add esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp], eax
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x58], 0x14151a1b
mov dword [esp + 0x5c], 0
xor eax, eax
nop
mov ecx, eax
add cl, 6
xor cl, byte [esp + eax + 0x58]
add cl, 0xe2
mov byte [esp + eax + 0x58], cl
inc eax
cmp eax, 8
jne 0x41da30
mov eax, dword [esp + 0x58]
mov edi, dword [0x44cf90]
test edi, edi
je 0x41da9c
add edx, 2
xor ebx, ebx
mov ecx, dword [0x44cf94]
nop
cmp dword [ecx + ebx*8], 0xae6e2b0b
je 0x41da73
inc ebx
cmp edi, ebx
jne 0x41da60
mov ebx, dword [ebp + 0x14]
jmp 0x41da9c
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, eax
mov ebx, dword [ebp + 0x14]
je 0x41da9c
push 0
push edx
push dword [esp + 0x18]
push 0x2b
push dword [esp + 0x10]
push 5
push ecx
push dword [0x44cf98]
call fcn.0043d020
add esp, 0x20
test eax, eax
js 0x41dd3c
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx]
shr eax, 1
mov ecx, dword [ecx + 4]
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp eax, edx
je 0x41dadb
mov edi, dword [ebp + 0xc]
movzx edi, word [edi + edx*2]
cmp di, word [ecx + edx*2]
jne 0x41dd3c
inc edx
test di, di
jne 0x41dac0
mov ecx, ebx
call fcn.0043aa10
cmp eax, 2
jne 0x41dd3c
mov ecx, ebx
push 0
push 0x30
lea eax, [esp + 0x30]
push eax
push 0
call fcn.0043a850
test eax, eax
js 0x41dd3c
mov ecx, ebx
push 0
push 0
push 0x28
lea eax, [esp + 0x67c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x44]
call fcn.0043ad70
test eax, eax
js 0x41dd3c
mov ecx, ebx
push 0
push 0
push 0x80
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x6a4]
push dword [esp + 0x6a4]
call fcn.0043ad70
test eax, eax
js 0x41dd3c
movzx eax, word [esp + 0xca]
push eax
call fcn.0043a050
add esp, 4
mov edi, eax
movzx eax, word [esp + 0xca]
mov ecx, ebx
push 0
push 0
push eax
push edi
push dword [esp + 0xe4]
push dword [esp + 0xe4]
call fcn.0043ad70
test eax, eax
js 0x41dd33
mov eax, edi
movzx edi, word [esp + 0x498]
mov dword [esp + 0xc], eax
mov dword [esp], eax
test di, di
je 0x41dbf5
lea ecx, [esp + 0x498]
mov edx, dword [esp + 0xc]
mov eax, edx
mov dword [esp], edx
jmp 0x41dbc8
movzx edi, word [ecx]
test di, di
je 0x41dbf5
movzx ebx, word [eax]
test bx, bx
je 0x41dd2c
add eax, 2
add ecx, 2
mov edx, dword [esp]
add edx, 2
cmp bx, di
je 0x41dbea
mov dword [esp], edx
mov eax, edx
je 0x41dbc0
lea ecx, [esp + 0x498]
jmp 0x41dbc0
cmp dword [esp], 0
je 0x41dd2c
mov ebx, dword [ebp + 0x14]
mov ecx, ebx
push 0
push 0
push 0x20
lea eax, [esp + 0x624]
push eax
push dword [esp + 0x69c]
push dword [esp + 0x69c]
call fcn.0043ad70
test eax, eax
js 0x41dd2f
mov eax, dword [esp + 0x688]
mov ecx, dword [esp + 0x68c]
add eax, 0x10
mov dword [esp], eax
adc ecx, 0
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x628]
mov edx, dword [esp + 0x62c]
mov dword [esp + 0x4fc], edx
mov dword [esp + 0x4f8], eax
jmp 0x41dc99
cmp cx, dx
je 0x41dd63
push edi
call fcn.0043a0e0
add esp, 4
mov eax, dword [esp + 0x4f8]
mov edx, dword [esp + 0x4fc]
mov ecx, edx
xor ecx, dword [esp + 0x24]
mov edi, eax
xor edi, dword [esp]
or edi, ecx
je 0x41dd2f
mov ecx, ebx
push 0
push 0
push 0x68
lea edi, [esp + 0x504]
push edi
push edx
push eax
call fcn.0043ad70
test eax, eax
js 0x41dd2f
movzx eax, word [esp + 0x552]
push eax
call fcn.0043a050
add esp, 4
mov edi, eax
movzx eax, word [esp + 0x552]
mov ecx, ebx
push 0
push 0
push eax
push edi
push dword [esp + 0x56c]
push dword [esp + 0x56c]
call fcn.0043ad70
test eax, eax
js 0x41dc6f
xor eax, eax
mov ecx, dword [ebp + 0x10]
movzx ecx, word [ecx + eax]
lea edx, [ecx - 0x41]
cmp dx, 0x1a
jae 0x41dd03
or ecx, 0x20
movzx edx, word [edi + eax]
lea ebx, [edx - 0x41]
cmp bx, 0x1a
jae 0x41dd13
or edx, 0x20
mov ebx, dword [ebp + 0x14]
test cx, cx
je 0x41dc66
add eax, 2
cmp cx, dx
je 0x41dcf0
jmp 0x41dc66
mov ebx, dword [ebp + 0x14]
mov edi, dword [esp + 0xc]
push edi
call fcn.0043a0e0
add esp, 4
push dword [esp + 0x10]
call fcn.0043a0e0
add esp, 4
mov eax, dword [esp + 4]
or eax, dword [esp + 8]
je 0x41d8c0
cmp dword [esp + 0x14], 0
je 0x41d8c0
jmp 0x41dda7
mov eax, dword [esp + 0x528]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x52c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x538]
mov dword [esp + 0x14], eax
push edi
call fcn.0043a0e0
add esp, 4
jmp 0x41dd2f
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
push dword [esp + 0x18]
call fcn.0043a0e0
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
mov eax, dword [ebp + 0x18]
mov dword [eax], edx
mov dword [eax + 4], esi
mov eax, dword [ebp + 0x1c]
mov dword [eax], ecx
mov ecx, ebx
call fcn.0043a4c0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret