Function at 0x40a9b0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xd
push 0
push 0
dec ecx
jne 0x40a9b8
push ecx
push ebx
push esi
push edi
mov eax, 0x40a958
call fcn.004056e8
xor eax, eax
push ebp
push 0x40b477
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetSystemDefaultLangID
and ax, 0xff
movzx eax, ax
add eax, 0xfffffffb
cmp eax, 0x14
ja case.0x40a9f5.5
mov al, byte [eax + 0x40a9fc]
jmp dword [eax*4 + 0x40aa11]
mov byte [0x40c2fc], 1
jmp case.0x40a9f5.5
mov byte [0x40c2fc], 2
jmp case.0x40a9f5.5
mov byte [0x40c2fc], 3
jmp case.0x40a9f5.5
mov byte [0x40c2fc], 4
jmp case.0x40a9f5.5
mov byte [0x40c2fc], 5
jmp case.0x40a9f5.5
mov byte [0x40c2fc], 6
call fcn.0040a76c
call fcn.0040a744
lea eax, [ebp - 0x14]
call fcn.00409cac
mov edx, dword [ebp - 0x14]
mov eax, 0x40c2e4
call fcn.00404560
mov eax, dword [0x40c2e4]
call fcn.004069b4
mov eax, dword [0x40c464]
mov byte [eax], 0
lea edx, [ebp - 0x18]
xor eax, eax
call fcn.00402c78
mov edx, dword [ebp - 0x18]
mov eax, 0x48d7b8
call fcn.00402f7c
xor eax, eax
push ebp
push 0x40aad5
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0x48d7b8
call fcn.0040334c
call fcn.004029a8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40aafa
xor eax, eax
push ebp
push 0x40b2cc
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x40b28a
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
push 0
mov edx, 0x48da50
mov ecx, 2
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
cmp word [0x48da50], 0x5a4d
jne 0x40ab83
mov edx, 0x3c
mov eax, 0x48d7b8
call fcn.00403374
call fcn.004029a8
push 0
mov edx, 0x48da50
mov ecx, 2
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
movzx edx, word [0x48da50]
mov eax, 0x48d7b8
call fcn.00403374
call fcn.004029a8
push 0
mov edx, 0x48da5c
mov ecx, 4
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
cmp dword [0x48da5c], 0x4550
jne 0x40ad27
mov eax, 0x48d7b8
call fcn.00403188
call fcn.004029a8
mov edx, eax
add edx, 2
mov eax, 0x48d7b8
call fcn.00403374
call fcn.004029a8
push 0
mov edx, 0x48da50
mov ecx, 2
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
movzx eax, word [0x48da50]
mov dword [0x48da60], eax
mov eax, 0x48d7b8
call fcn.00403188
call fcn.004029a8
mov edx, eax
add edx, 0xc
mov eax, 0x48d7b8
call fcn.00403374
call fcn.004029a8
push 0
mov edx, 0x48da50
mov ecx, 2
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
mov eax, 0x48d7b8
call fcn.00403188
call fcn.004029a8
mov edx, eax
add edx, 2
movzx eax, word [0x48da50]
add edx, eax
mov eax, 0x48d7b8
call fcn.00403374
call fcn.004029a8
mov ebx, dword [0x48da60]
test ebx, ebx
jle 0x40ad27
mov dword [0x48da5c], 1
mov eax, 0x48d7b8
call fcn.00403188
call fcn.004029a8
mov edx, eax
add edx, 0x10
mov eax, 0x48d7b8
call fcn.00403374
call fcn.004029a8
push 0
mov edx, 0x48da54
mov ecx, 4
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
push 0
mov edx, 0x48da58
mov ecx, 4
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
cmp dword [0x48da54], 0
jle 0x40acf7
mov eax, dword [0x48da54]
add eax, dword [0x48da58]
cmp edi, eax
jge 0x40acf7
mov edi, dword [0x48da54]
add edi, dword [0x48da58]
mov eax, 0x48d7b8
call fcn.00403188
call fcn.004029a8
mov edx, eax
add edx, 0x10
mov eax, 0x48d7b8
call fcn.00403374
call fcn.004029a8
inc dword [0x48da5c]
dec ebx
jne 0x40ac7a
test edi, edi
jne 0x40ad42
lea edx, [ebp - 0x20]
xor eax, eax
call fcn.00402c78
mov eax, dword [ebp - 0x20]
mov edx, 0xc1
call fcn.0040a05c
mov dword [0x48da5c], edi
jmp 0x40ade4
mov edx, dword [0x48da5c]
mov eax, 0x48d7b8
call fcn.00403374
call fcn.004029a8
push 0
mov edx, dword [0x40c3f8]
mov ecx, 0x11
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
mov ebx, dword [0x40c3f8]
mov ebx, dword [ebx + 1]
test ebx, ebx
jne 0x40adac
mov eax, dword [0x40c3f8]
cmp dword [eax + 5], 0
jne 0x40adac
mov eax, dword [0x40c3f8]
cmp dword [eax + 9], 0
jne 0x40adac
mov eax, dword [0x40c3f8]
cmp dword [eax + 0xd], 0
je 0x40ae08
add dword [0x48da5c], 0x11
mov eax, dword [0x40c3f8]
add dword [0x48da5c], ebx
mov esi, dword [0x40c3f8]
mov esi, dword [esi + 5]
add dword [0x48da5c], esi
add dword [0x48da5c], 4
mov eax, dword [0x40c3f8]
add dword [0x40c2f4], esi
call fcn.0040a744
cmp dword [0x48da5c], 0
jl 0x40ae08
mov eax, 0x48d7b8
call fcn.004031d8
call fcn.004029a8
cmp eax, dword [0x48da5c]
jg 0x40ad4d
cmp dword [0x40c2f4], 0
je 0x40ae46
cmp dword [0x40c2f4], 0
jle 0x40ae5d
mov eax, dword [0x40c3f8]
cmp dword [eax + 1], 0
jne 0x40ae46
mov eax, dword [0x40c3f8]
cmp dword [eax + 5], 0
jne 0x40ae46
mov eax, dword [0x40c3f8]
cmp dword [eax + 9], 0
jne 0x40ae46
mov eax, dword [0x40c3f8]
cmp dword [eax + 0xd], 0
je 0x40ae5d
lea edx, [ebp - 0x24]
xor eax, eax
call fcn.00402c78
mov eax, dword [ebp - 0x24]
mov edx, 0xc1
call fcn.0040a05c
lea edx, [ebp - 0x28]
mov eax, dword [0x40c2e4]
call fcn.00406d08
mov eax, dword [ebp - 0x28]
mov al, byte [eax]
call fcn.00402cdc
sub al, 0x41
inc eax
call fcn.00406e90
mov dword [0x48da68], eax
mov dword [0x48da6c], edx
mov eax, dword [0x40c2f4]
cdq
cmp edx, dword [0x48da6c]
jne 0x40aea0
cmp eax, dword [0x48da68]
jbe 0x40af1b
jmp 0x40aea2
jle 0x40af1b
lea eax, [ebp - 0x2c]
push eax
lea edx, [ebp - 0x48]
mov eax, dword [0x40c2e4]
call fcn.00406d08
mov eax, dword [ebp - 0x48]
mov al, byte [eax]
call fcn.00402cdc
mov byte [ebp - 0x44], al
mov byte [ebp - 0x40], 2
push dword [0x48da6c]
push dword [0x48da68]
lea eax, [ebp - 0x4c]
call fcn.0040a200
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0xb
mov eax, dword [0x40c2f4]
cdq
push edx
push eax
lea eax, [ebp - 0x50]
call fcn.0040a200
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x30], 0xb
lea edx, [ebp - 0x44]
mov ecx, 2
mov eax, 0x40b490
call fcn.00407458
mov eax, dword [ebp - 0x2c]
mov edx, 0x70
call fcn.0040a05c
mov edx, edi
mov eax, 0x48d7b8
call fcn.00403374
call fcn.004029a8
jmp 0x40b258
push 0
mov edx, dword [0x40c3f8]
mov ecx, 0x11
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
mov eax, dword [0x40c3f8]
cmp dword [eax + 1], 0
jne 0x40af7d
mov eax, dword [0x40c3f8]
cmp dword [eax + 5], 0
jne 0x40af7d
mov eax, dword [0x40c3f8]
cmp dword [eax + 9], 0
jne 0x40af7d
mov eax, dword [0x40c3f8]
cmp dword [eax + 0xd], 0
je 0x40b280
mov eax, 0x48da64
mov edx, dword [0x40c2e4]
call fcn.00404560
mov eax, dword [0x40c2e4]
call fcn.00404780
mov edx, eax
mov eax, dword [0x40c3f8]
add edx, dword [eax + 1]
mov eax, 0x48da64
call fcn.00404b0c
push 0
mov eax, dword [0x40c2e4]
call fcn.00404780
mov ebx, eax
mov eax, 0x48da64
call fcn.004049d8
lea edx, [eax + ebx]
mov ecx, dword [0x40c3f8]
mov ecx, dword [ecx + 1]
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
mov eax, dword [0x40c2e4]
call fcn.00404780
mov ebx, eax
mov eax, 0x48da64
call fcn.004049d8
add eax, ebx
mov edx, dword [0x40c3f8]
mov edx, dword [edx + 1]
call fcn.00409acc
mov dword [0x48da58], eax
mov eax, dword [0x40c3f8]
cmp byte [eax], 0
je 0x40b023
mov eax, 0x40c2e8
mov edx, dword [0x48da64]
call fcn.00404560
mov eax, dword [0x40c2f0]
call fcn.00404780
inc eax
push eax
lea eax, [ebp - 0x58]
mov edx, 0x40b4a8
mov dl, byte [edx]
call fcn.004046d8
mov ecx, dword [ebp - 0x58]
lea eax, [ebp - 0x54]
mov edx, dword [0x48da64]
call fcn.004047cc
mov eax, dword [ebp - 0x54]
mov edx, 0x40c2f0
pop ecx
call fcn.00404a68
lea edx, [ebp - 0x5c]
mov eax, dword [0x48da64]
call fcn.00406cb4
mov eax, dword [ebp - 0x5c]
call fcn.004069b4
mov eax, dword [0x40c464]
mov byte [eax], 1
mov edx, dword [0x48da64]
mov eax, 0x48d904
call fcn.00402f7c
xor eax, eax
push ebp
push 0x40b0b6
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0x48d904
call fcn.00403368
call fcn.004029a8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40b0d1
xor eax, eax
push ebp
push 0x40b23e
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0x48da5c], eax
jmp 0x40b1ba
mov eax, dword [0x40c3f8]
mov esi, ebx
sub esi, dword [0x48da5c]
cmp esi, 0x80000
jle 0x40b10c
mov dword [0x48da60], 0x80000
jmp 0x40b117
mov eax, dword [0x40c3f8]
mov dword [0x48da60], esi
push 0
mov edx, dword [0x40c428]
mov ecx, dword [0x48da60]
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
xor eax, eax
push ebp
push 0x40b169
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0x40c428]
mov ecx, dword [0x48da60]
mov eax, 0x48d904
call fcn.004030f4
call fcn.004029a8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40b184
mov eax, dword [0x40c428]
mov edx, dword [0x48da60]
call fcn.00409acc
add dword [0x48da58], eax
mov eax, dword [0x48da60]
add dword [0x48da5c], eax
mov eax, dword [0x48da60]
add dword [0x40c2f8], eax
call fcn.0040a894
call fcn.0040a744
mov ebx, dword [0x40c3f8]
mov ebx, dword [ebx + 5]
cmp ebx, dword [0x48da5c]
jg 0x40b0eb
push 0
mov edx, 0x48da54
mov ecx, 4
mov eax, 0x48d7b8
call fcn.004030d4
call fcn.004029a8
mov eax, dword [0x48da54]
cmp eax, dword [0x48da58]
je 0x40b20e
lea edx, [ebp - 0x60]
xor eax, eax
call fcn.00402c78
mov eax, dword [ebp - 0x60]
mov edx, 0xc1
call fcn.0040a05c
mov edx, dword [0x40c3f8]
mov edx, dword [edx + 9]
mov eax, dword [0x48d904]
call fcn.00406a9c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40b245
mov eax, 0x48d904
call fcn.00403114
call fcn.004029a8
ret
mov eax, 0x48d7b8
call fcn.00403188
call fcn.004029a8
mov ebx, eax
mov eax, 0x48d7b8
call fcn.004031d8
call fcn.004029a8
cmp ebx, eax
jl 0x40af31
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40b2af
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40b2d3
mov eax, 0x48d7b8
call fcn.00403114
call fcn.004029a8
ret