Function at 0x410148
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, 0xcf0
mov ecx, dword [0x442b34]
mov dword [esp + 0xd0], 0x6b2ffb36
mov dword [esp + 0xd4], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 7
ja 0x40eeef
nop
nop
nop
nop
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x30]
movzx edi, byte [esp + eax + 0xd0]
lea eax, [esi - 0x5987b82e]
lea edx, [esi + edi]
add edx, 0xa67847d2
add esi, 0xd2
and esi, edi
and eax, edi
add eax, esi
mov esi, edx
not esi
and esi, eax
not eax
and eax, edx
sub eax, esi
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x2e0]
add al, 0x42
mov edx, dword [esp + 0x30]
mov byte [esp + edx + 0xd0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 8
jb 0x40ee90
mov edx, dword [str.AB15g1__]
mov dword [esp + 0x2e0], 0xee36c2cd
mov dword [esp + 0x2e4], 0xbeb9c436
mov dword [esp + 0x2e8], 0x46b1b84e
mov dword [esp + 0x2ec], 0xbe414ebd
mov dword [esp + 0x2f0], 0x41f0b0b7
mov dword [esp + 0x2f4], 0x9b8347b5
mov dword [esp + 0x2f8], 0x57e89596
mov dword [esp + 0x2fc], 0xcf8bada9
mov dword [esp + 0x300], 0
mov word [esp + 0x304], 0
mov dword [esp + 0x260], 0
mov eax, dword [esp + 0x260]
cmp eax, 0x25
ja 0x40efd2
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x260]
mov esi, dword [esp + 0x260]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [eax - 0xb707e46]
add eax, 0xba
and eax, esi
or edi, esi
sub edi, eax
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x30]
add al, 0xea
mov esi, dword [esp + 0x260]
mov byte [esp + esi + 0x2e0], al
inc dword [esp + 0x260]
mov eax, dword [esp + 0x260]
cmp eax, 0x26
jb 0x40ef80
movzx ebx, byte [esp + 0x2e0]
lea eax, [esp + 0x260]
test bl, bl
je 0x40effb
lea esi, [esp + 0x2e1]
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40eff0
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40f01b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40f010
mov byte [eax], 0
movzx edx, byte [esp + 0xd0]
test dl, dl
je 0x40f04b
lea esi, [esp + 0xd1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40f040
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f06b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40f060
mov byte [eax], 0
lea ecx, [esp + 0x260]
mov dword [esp + 0x2e0], 0x8b798d53
mov dword [esp + 0x2e4], 0x870a897a
mov dword [esp + 0x2e8], 0x83708579
mov dword [esp + 0x2ec], 0x9fab810c
mov dword [esp + 0x2f0], 0x9b139d70
mov dword [esp + 0x2f4], 0x976b9968
mov dword [esp + 0x2f8], 0x93b29552
mov dword [esp + 0x2fc], 0xaf5e9171
mov dword [esp + 0x300], 0xab5ead5c
mov dword [esp + 0x304], 0xa759a951
mov dword [esp + 0x308], 0xa32ea545
mov dword [esp + 0x30c], 0xbf4da159
mov dword [esp + 0x310], 0xbb89bd4e
mov dword [esp + 0x314], 0xb783b930
mov dword [esp + 0x318], 0xb339b53f
mov dword [esp + 0x31c], 0x4f7bb13b
mov dword [esp + 0x320], 0x4bb94db6
mov dword [esp + 0x324], 0x47b349c6
mov dword [esp + 0x328], 0x43cf4571
mov dword [esp + 0x32c], 0x5faa41ce
mov dword [esp + 0x330], 0x5ba85da1
mov dword [esp + 0x334], 0x57a559a7
mov dword [esp + 0x338], 0x53af55a8
mov dword [esp + 0x33c], 0x6f7b51ac
mov dword [esp + 0x340], 0x6b6a6d7a
mov dword [esp + 0x347], 0
mov dword [esp + 0x344], 0
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x30]
cmp edx, 0x6a
ja 0x40f1fd
nop
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x30]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [edx + 0x282fca42]
and edi, esi
add edx, esi
add edx, 0x282fca42
add edi, edi
sub edx, edi
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0xd0]
add dl, 0x32
mov esi, dword [esp + 0x30]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x30]
mov edx, dword [esp + 0x30]
cmp edx, 0x6b
jb 0x40f1b0
sub eax, ecx
mov dword [esp + 0xd0], 0xeb3395e7
mov dword [esp + 0xd4], 0xef57e95a
mov word [esp + 0xd8], 0xedee
mov dword [esp + 0xda], 0
mov dword [esp + 0xde], 0
mov dword [esp + 0xe2], 0
mov byte [esp + 0xe6], 0
mov dword [esp + 0x1f8], 0
mov edx, dword [esp + 0x1f8]
cmp edx, 0x16
ja 0x40f2b4
nop
mov edx, dword [esp + 0x1f8]
mov esi, dword [esp + 0x1f8]
movzx esi, byte [esp + esi + 0xd0]
lea edi, [edx - 0x43c74743]
add edx, 0xbd
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x30]
add dl, 0xd5
mov esi, dword [esp + 0x1f8]
mov byte [esp + esi + 0xd0], dl
inc dword [esp + 0x1f8]
mov edx, dword [esp + 0x1f8]
cmp edx, 0x17
jb 0x40f260
lea edx, [esp + 0xc0]
lea esi, [esp + 0x2c]
lea edi, [esp + 0x2e0]
lea ebx, [esp + 0xd0]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x448974
call fcn.0040c360
add esp, 0x1c
movzx eax, al
xor esi, esi
jmp dword [eax*4 + 0x443714]
jmp dword [0x44371c]
push esi
call fcn.00408b30
add esp, 4
mov dword [esp + 0x24], ebx
push ebx
call fcn.00402780
add esp, 4
mov ebx, eax
mov word [esp + 0x2e0], 0xc6dc
mov byte [esp + 0x2e2], 0x54
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e6], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 9
ja 0x40f397
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0x6da1384d]
add eax, 0x4d
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
add al, 0xe5
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xa
jb 0x40f350
push edi
push ebx
call fcn.00402800
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x44374c]
call fcn.004343b0
movzx eax, al
jmp dword [eax*4 + 0x443754]
mov word [esp + 0x2e0], 0x7d75
mov byte [esp + 0x2e2], 0x10
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov word [esp + 0x2eb], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x40f475
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax - 0x54f187fd]
add eax, 3
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0xd0]
mov ecx, eax
or ecx, 0xea
and eax, 0xea
add eax, ecx
inc al
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
mov eax, dword [esp + 0x30]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x40f410
push edi
push ebx
call fcn.00402800
add esp, 8
mov dword [esp + 0xc8], eax
mov word [esp + 0x2e0], 0x3e2b
mov byte [esp + 0x2e2], 0xa0
mov dword [esp + 0x2e3], 0
mov byte [esp + 0x2e7], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 7
ja 0x40f51f
nop
nop
nop
nop
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x30]
movzx edx, byte [esp + eax + 0x2e0]
lea eax, [ecx + edx]
add eax, 0xfda46b9b
add ecx, 0xfda46b9b
mov esi, edx
not esi
or esi, ecx
add esi, edx
and ecx, edx
add ecx, esi
inc ecx
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0xd0]
add al, 0xc3
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 8
jb 0x40f4c0
push edi
push ebx
call fcn.00402800
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov edi, ecx
push ebx
call fcn.00410470
add esp, 4
push dword [esp + 0x24]
call fcn.00402a10
add esp, 4
lea esi, [esp + 0x1f8]
mov ecx, esi
push 1
call fcn.00409430
push esi
call fcn.0041dee0
add esp, 4
mov ecx, esi
call fcn.00409db0
lea esi, [esp + 0xc80]
mov ecx, esi
push 3
call fcn.00409430
push esi
call fcn.0041e720
add esp, 4
mov ecx, esi
call fcn.00409db0
lea esi, [esp + 0xc18]
mov ecx, esi
push 1
call fcn.00409430
push esi
call fcn.0041e950
add esp, 4
mov ecx, esi
call fcn.00409db0
lea esi, [esp + 0xbb0]
mov ecx, esi
push 1
call fcn.00409430
push esi
call fcn.00420940
add esp, 4
push esi
call fcn.00421620
add esp, 4
push esi
call fcn.00421ad0
add esp, 4
mov ecx, esi
call fcn.00409db0
lea esi, [esp + 0xb48]
mov ecx, esi
push 1
call fcn.00409430
push esi
call fcn.00423c00
add esp, 4
mov ecx, esi
call fcn.00409db0
lea esi, [esp + 0xae0]
mov ecx, esi
push 1
call fcn.00409430
push esi
call fcn.00425fd0
add esp, 4
push esi
call fcn.0042ebd0
add esp, 4
jmp dword [edi*4 + 0x44375c]
push esi
call fcn.0042ed90
add esp, 4
lea ecx, [esp + 0xae0]
call fcn.00409db0
lea eax, [esp + 0x1d7]
push eax
call fcn.00435150
add esp, 4
mov dword [esp + 0x30], 0xdac9c506
mov word [esp + 0x34], 0xcd4
mov byte [esp + 0x36], 0x76
mov word [esp + 0x37], 0
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0xd0]
cmp eax, 8
ja 0x40f6d0
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
movzx ecx, byte [esp + ecx + 0x30]
lea edx, [eax - 0x62bcb3b2]
add eax, 0x4e
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x2e0], edx
mov eax, dword [esp + 0x2e0]
add al, 0xde
mov ecx, dword [esp + 0xd0]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xd0]
mov eax, dword [esp + 0xd0]
cmp eax, 9
jb 0x40f680
mov eax, dword [0x442b34]
mov dword [esp], 0xfb3763e0
mov dword [esp + 4], 0
mov byte [esp + 8], 0
mov dword [esp + 0xd0], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 8
ja 0x40f763
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
movzx edx, byte [esp + edx]
mov esi, ecx
and esi, 0x3d0f1e1f
xor ecx, 0x3d0f1e1f
lea ecx, [ecx + esi*2]
lea esi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x2e0], esi
mov ecx, dword [esp + 0x2e0]
mov edx, ecx
or edx, 0x26
and ecx, 0x26
add ecx, edx
inc cl
mov edx, dword [esp + 0xd0]
mov byte [esp + edx], cl
inc dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
cmp ecx, 9
jb 0x40f700
mov ecx, dword [str.AB15g1__]
mov dword [esp + 0x2e0], 0x9ed6faf9
mov dword [esp + 0x2e4], 0xf0dae8eb
mov dword [esp + 0x2e8], 0xe0e1ece5
mov dword [esp + 0x2ec], 0xd193928d
mov dword [esp + 0x2f0], 0xee9894a6
mov dword [esp + 0x2f4], 0xd9d6d3e8
mov dword [esp + 0x2f8], 0xe69e9894
mov byte [esp + 0x2fc], 0x3c
mov word [esp + 0x2fd], 0
mov byte [esp + 0x2ff], 0
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x10]
cmp edx, 0x1f
ja 0x40f83d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
movzx esi, byte [esp + esi + 0x2e0]
lea edi, [edx + 0xb4]
and edi, esi
add edx, esi
add edi, edi
sub edx, edi
add edx, 0x2d7acfb4
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0xd0]
add dl, 0x14
mov esi, dword [esp + 0x10]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x10]
mov edx, dword [esp + 0x10]
cmp edx, 0x20
jb 0x40f7f0
movzx edx, byte [esp + 0x2e0]
test dl, dl
lea edi, [esp + 0xd0]
je 0x40f86b
lea edi, [esp + 0xd0]
lea esi, [esp + 0x2e1]
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40f860
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f88b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40f880
mov byte [edi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40f8ab
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40f8a0
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40f8cb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40f8c0
mov byte [edi], 0
movzx eax, byte [esp + 0x30]
test al, al
je 0x40f8eb
lea ecx, [esp + 0x31]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40f8e0
mov byte [edi], 0
movzx eax, byte [esp + 0x1d7]
test al, al
mov dword [esp + 0xc4], ebx
je 0x40f91b
lea ecx, [esp + 0x1d8]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40f910
mov ebx, edi
mov byte [edi], 0
lea eax, [esp + 0xd0]
mov dword [esp + 0x2e0], 0x8b398d43
mov dword [esp + 0x2e4], 0x972a893a
mov dword [esp + 0x2e8], 0x93209539
mov dword [esp + 0x2ec], 0x9f6b912c
mov dword [esp + 0x2f0], 0x9b239d40
mov dword [esp + 0x2f4], 0x67cb9928
mov dword [esp + 0x2f8], 0x638265a2
mov dword [esp + 0x2fc], 0x6fde61c1
mov dword [esp + 0x300], 0x6bde6ddc
mov dword [esp + 0x304], 0x77d969c1
mov dword [esp + 0x308], 0x73ce75d5
mov dword [esp + 0x30c], 0x7fcd71d9
mov dword [esp + 0x310], 0x7b897dce
mov dword [esp + 0x314], 0x47b379c0
mov dword [esp + 0x318], 0x43f945ff
mov dword [esp + 0x31c], 0x4fbb41fb
mov dword [esp + 0x320], 0x4bf94de6
mov dword [esp + 0x324], 0x57e349f6
mov dword [esp + 0x328], 0x53ef55a1
mov dword [esp + 0x32c], 0x5fea51ee
mov dword [esp + 0x330], 0x5be85df1
mov dword [esp + 0x334], 0x279559f7
mov dword [esp + 0x338], 0x238f2588
mov dword [esp + 0x33c], 0x2f3b218c
mov dword [esp + 0x340], 0x2b2a2d3a
mov word [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x69
ja 0x40faa5
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x2e0]
lea esi, [ecx + 0x6a]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add ecx, esi
add ecx, 0xf6741869
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
add cl, 0x1a
mov edx, dword [esp]
mov byte [esp + edx + 0x2e0], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x6a
jb 0x40fa60
sub ebx, eax
mov dword [esp + 0x30], 0xb313b1cf
mov dword [esp + 0x34], 0xb70fb504
mov word [esp + 0x38], 0x8988
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0x17
ja 0x40fb43
nop
nop
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx esi, byte [esp + ecx + 0x30]
lea ecx, [edx + esi]
add ecx, 0xd8f20b98
add edx, 0xd8f20b98
mov edi, esi
not edi
or edi, edx
add edi, esi
and edx, esi
add edx, edi
inc edx
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
mov dword [esp], edx
mov ecx, dword [esp]
add cl, 0xd8
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0x18
jb 0x40faf0
lea ecx, [esp + 0xbc]
lea edx, [esp + 0x28]
lea esi, [esp + 0x30]
push ecx
push edx
push ebx
push eax
lea edi, [esp + 0x2f0]
push edi
push esi
push 0x448974
call fcn.0040c360
add esp, 0x1c
movzx eax, al
xor ebx, ebx
jmp dword [eax*4 + 0x443764]
jmp dword [0x443770]
push dword [esp + 0x24]
call fcn.00402a10
add esp, 4
xor eax, eax
jmp 0x4100f0
mov dword [esp + 0x30], 0x9bef99fb
mov dword [esp + 0x34], 0x97a095e8
mov dword [esp + 0x38], 0x931a91ed
mov dword [esp + 0x3c], 0xaf8eadd1
mov dword [esp + 0x40], 0xabd9a98a
mov dword [esp + 0x44], 0xa7c7a528
mov dword [esp + 0x48], 0xa32ea1d2
mov dword [esp + 0x4c], 0xbf89bd9c
mov dword [esp + 0x50], 0xbbc3b9cd
mov dword [esp + 0x54], 0xb796b5c2
mov dword [esp + 0x58], 0xb3c7b1d3
mov dword [esp + 0x5c], 0xcff8cdb0
mov dword [esp + 0x60], 0xcb42c9b5
mov dword [esp + 0x64], 0xc7e6c5b9
mov dword [esp + 0x68], 0xc3f5c1e2
mov dword [esp + 0x6c], 0xdffeddbf
mov dword [esp + 0x70], 0xdba3d954
mov dword [esp + 0x74], 0xd7abd5a1
mov dword [esp + 0x78], 0xd35fd1a7
mov dword [esp + 0x7c], 0xefceed60
mov dword [esp + 0x80], 0xeb66e9df
mov dword [esp + 0x84], 0xe7d5e5c4
mov dword [esp + 0x88], 0xe3d5e1c0
mov dword [esp + 0x8c], 0xff89fd8a
mov dword [esp + 0x90], 0xfb88f99a
mov dword [esp + 0x94], 0xf797f589
mov dword [esp + 0x98], 0xf3d2f18b
mov dword [esp + 0x9c], 0xf2e0d32
mov dword [esp + 0xa0], 0xb770974
mov dword [esp + 0xa4], 0x7260570
mov dword [esp + 0xa8], 0x3020122
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x83
ja 0x40fd22
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx - 0x2441caec]
add ecx, 0x14
or ecx, esi
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0x2e0], esi
mov ecx, dword [esp + 0x2e0]
add cl, 0x74
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x84
jb 0x40fce0
movzx ecx, word [esp + 0x30]
test cx, cx
lea esi, [esp + 0x2e0]
je 0x40fd51
lea esi, [esp + 0x2e0]
lea edx, [esp + 0x32]
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40fd40
mov word [esi], 0
movzx ecx, word [eax]
test cx, cx
je 0x40fd81
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x40fd70
mov dword [esi], 0x220022
mov dword [esi + 4], 0x22
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x44
mov dword [esp + 0x5c], 1
push 0x89047569
push dword [0x449c7c]
call fcn.0043bf80
add esp, 8
lea ecx, [esp + 0x10]
lea edx, [esp + 0x2e0]
push ecx
lea ecx, [esp + 0x34]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4437c4]
mov eax, dword [esp + 0x10]
mov dword [esp], 0x2010007
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x20]
cmp ecx, 0xb
ja 0x40fedb
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x20]
movzx edx, byte [esp + edx]
lea esi, [ecx - 0x4057fad5]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add ecx, esi
add ecx, 0xbfa8052a
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0xcc]
add cl, 0xd3
mov edx, dword [esp + 0x20]
mov byte [esp + edx], cl
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
cmp ecx, 0xc
jb 0x40fe90
mov ecx, dword [0x449c88]
test ecx, ecx
je case.0x4102dd.10
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x449c8c]
cmp dword [edi + esi*8], 0xad91fd63
je 0x40ff00
inc esi
cmp ecx, esi
jne 0x40fef0
jmp case.0x4102dd.10
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x4102dd.10
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
jmp case.0x4102dd.8
lea ecx, [esp + 0x2e0]
push 1
call fcn.00409430
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x448c7d], 0
lea eax, [eax + 1]
jne 0x40ff40
mov dword [esp + 0x30], 0x6c5a5ec2
mov dword [esp + 0x34], 0x77682363
mov word [esp + 0x38], 0xf16a
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x41], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0x14
ja 0x40ffde
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0x279de5ff]
lea edi, [ecx + 0xff]
mov ebx, edi
and ebx, esi
and ebx, edx
xor edi, esi
and edi, edx
add ecx, edx
add ecx, 0x279de5ff
lea edx, [edi + ebx*2]
sub ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 7
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0x15
jb 0x40ff90
lea esi, [esp + 0x2e0]
mov ecx, esi
push eax
push 0x448c7c
lea eax, [esp + 0x38]
push eax
call fcn.00409630
mov ecx, esi
call fcn.00409db0
mov ecx, esi
call fcn.00409470
jmp dword [0x4437b0]
lea ecx, [esp + 0x2e0]
push 1
call fcn.00409430
mov eax, 0xffffffff
nop
nop
cmp byte [eax + 0x448c7d], 0
lea eax, [eax + 1]
jne 0x410020
mov dword [esp + 0x30], 0x6c5a5ec2
mov dword [esp + 0x34], 0x77682363
mov word [esp + 0x38], 0xf16a
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x41], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0x14
ja 0x4100be
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0x279de5ff]
lea edi, [ecx + 0xff]
mov ebx, edi
and ebx, esi
and ebx, edx
xor edi, esi
and edi, edx
add ecx, edx
add ecx, 0x279de5ff
lea edx, [edi + ebx*2]
sub ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 7
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0x15
jb 0x410070
lea esi, [esp + 0x2e0]
mov ecx, esi
push eax
push 0x448c7c
lea eax, [esp + 0x38]
push eax
call fcn.00409630
mov ecx, esi
call fcn.00409db0
mov ecx, esi
call fcn.00409470
jmp case.0x4102dd.3
jmp dword [0x4437a8]
mov ecx, dword [case.0x40f2e5.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
jmp dword [0x44378c]
push ebx
call fcn.00408b30
add esp, 4
jmp dword [0x44378c]
push esi
call fcn.004139b0
add esp, 4
push esi
call fcn.00402a10
add esp, 4
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.004139b0
add esp, 4
push esi
call fcn.00402a10
add esp, 4
jmp dword [0x443798]
xor ecx, ecx
test esi, esi
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x44373c]
push esi
mov dword [esp + 0x28], ecx
call fcn.00401ea0
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x24]
jmp dword [eax*4 + 0x443744]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0xbc]
mov esi, dword [esp + 0x28]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + esi - 1]
cmp edx, 0x3d
je 0x41019a
cmp edx, 0x2e
jne 0x41019b
dec eax
movzx ecx, byte [ecx + esi - 2]
cmp ecx, 0x3d
je 0x4101aa
cmp ecx, 0x2e
jne 0x4101b1
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
push eax
call fcn.00408b20
add esp, 4
mov ebx, eax
push eax
push esi
call fcn.004357f0
add esp, 8
push dword [esp + 0x28]
call fcn.00438e10
add esp, 4
jmp dword [0x443774]
mov ecx, dword [esp + 0xbc]
mov esi, dword [esp + 0x28]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + esi - 1]
cmp edx, 0x3d
je 0x4101f8
cmp edx, 0x2e
jne 0x4101f9
dec eax
movzx ecx, byte [ecx + esi - 2]
cmp ecx, 0x3d
je 0x410208
cmp ecx, 0x2e
jne 0x41020f
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
push eax
call fcn.00408b20
add esp, 4
push eax
push esi
call fcn.004357f0
add esp, 8
push dword [esp + 0x28]
call fcn.00438e10
add esp, 4
jmp case.0x40fb71.3
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x44377c]
mov dword [esp + 0x2e0], 0x6bf1f3f0
mov dword [esp + 0x2e8], 0
mov dword [esp + 0x2e4], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x4102c6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax - 0x1dcc4f2e]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0xe233b0d1
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x42
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x410280
push edi
push dword [esp + 0xc8]
call fcn.00402800
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x44379c]
xor eax, eax
cmp dword [esp + 0xc8], 0
setg al
jmp dword [eax*4 + 0x4437b4]
push 0
call fcn.0043be10
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4437bc]
jmp dword [0x4437d4]
lea ecx, [esp + 0xae0]
call fcn.00409470
lea ecx, [esp + 0xb48]
call fcn.00409470
lea ecx, [esp + 0xbb0]
call fcn.00409470
lea ecx, [esp + 0xc18]
call fcn.00409470
lea ecx, [esp + 0xc80]
call fcn.00409470
lea ecx, [esp + 0x1f8]
call fcn.00409470
mov al, 1
jmp 0x4100f0
push ebx
call fcn.00401ea0
add esp, 4
mov esi, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x443784]
push 0x104
mov ebx, edi
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0x2c]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x4103ac
cmp edx, 0x2e
jne 0x4103ad
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x4103bc
cmp ecx, 0x2e
jne 0x4103c3
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
push eax
call fcn.00408b20
add esp, 4
mov esi, eax
push eax
push edi
call fcn.004357f0
add esp, 8
push dword [esp + 0x2c]
call fcn.00438e10
add esp, 4
mov edi, ebx
jmp dword [0x443724]
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xc0]
mov esi, dword [esp + 0x2c]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + esi - 1]
cmp edx, 0x3d
je 0x410418
cmp edx, 0x2e
jne 0x410419
dec eax
movzx ecx, byte [ecx + esi - 2]
cmp ecx, 0x3d
je 0x410428
cmp ecx, 0x2e
jne 0x41042f
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
push eax
call fcn.00408b20
add esp, 4
push eax
push esi
call fcn.004357f0
add esp, 8
push dword [esp + 0x2c]
call fcn.00438e10
add esp, 4
jmp case.0x40f2e5.2
mov eax, dword [case.0x40f2e5.9]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax