Function at 0x41c553
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push 0x5c51ffff
call dword [sym.imp.USER32.dll_IsWindow]
add byte [0x43bbcd], al
call dword [sym.imp.USER32.dll_GetInputState]
push dword [ebp + 0x10]
add byte [0x43bbd0], al
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
test eax, eax
jne 0x41c650
movsx eax, word [0x43bbe4]
push eax
movsx eax, word [0x43bbe0]
push eax
call fcn.0041172e
pop ecx
mov word [0x43bbd4], ax
pop ecx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x4bbbffff
push 0x9759ffff
mov ebx, eax
call fcn.00411820
push 0xb425ffff
mov byte [0x43bbca], al
push dword [0x43bbe8]
call fcn.0041172e
mov edi, 0x80000000
add esp, 0x10
cmp ebx, edi
mov byte [0x43bbd1], al
mov esi, 0xc0000000
jb 0x41c5f8
cmp ebx, esi
jae 0x41c5f8
call dword [sym.imp.KERNEL32.dll_GetVersion]
test edi, eax
jne 0x41c650
mov ax, word [0x43bbfc]
sub ax, word [0x43bbe0]
mov word [0x43bbe4], ax
mov ax, word [0x43bbe2]
add ax, word [0x43bbd8]
add word [0x43bbd2], ax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
push dword [ebp + 0xc]
add word [0x43bbd4], ax
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
movsx ecx, word [0x43bbde]
or ecx, 0xdc45ffff
mov dword [ebp + 8], eax
add dword [0x43bbe8], ecx
test eax, eax
jne 0x41c657
xor eax, eax
jmp 0x41ca45
movsx eax, byte [0x43bbc9]
push eax
push dword [0x43bbf8]
call fcn.00411820
push 0x4e
mov dword [0x43bbec], eax
call fcn.00415e0d
add esp, 0xc
call eax
and eax, esi
cmp eax, edi
jne 0x41c68a
push ebx
call fcn.0041ca4c
pop ecx
mov ebx, eax
push 0x5833ffff
push 0x1fa1ffff
call fcn.004118a0
mov edi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
add dword [0x43bc00], eax
pop ecx
pop ecx
push 0x40
push ebx
call edi
test eax, eax
jne 0x41ca42
movsx eax, byte [0x43bbcc]
imul eax, dword [0x43bbe8]
add dword [0x43bbf4], eax
cmp word [ebx], 0x5a4d
jne 0x41ca42
push 0x280bffff
push 0x39fbffff
call fcn.004118e8
add word [0x43bbe2], ax
movsx eax, byte [0x43bbcc]
or eax, 0x9795ffff
dec byte [0x43bbc9]
mov dword [0x43bbf0], eax
push dword [ebx + 0x3c]
push ebx
call fcn.0041b6bf
push 0x15abffff
push 0xe36fffff
mov esi, eax
call fcn.00411856
add esp, 0x18
mov word [0x43bbdc], ax
push 0xf8
push esi
call edi
test eax, eax
jne 0x41ca42
xor edi, edi
push 0x6a91ffff
cmp word [0x43bbd4], di
push 0x6195ffff
setne al
mov dword [0x43bbf0], eax
call fcn.004118e8
add byte [0x43bbcf], al
cmp dword [esi], 0x4550
pop ecx
pop ecx
jne 0x41ca42
mov eax, dword [0x43bbec]
push 0xe245ffff
imul eax, eax, 0x7cbffff
add dword [0x43bc08], eax
push 0xc44bffff
call fcn.0041172e
add byte [0x43bbcf], al
push dword [esi + 0x78]
push ebx
call fcn.0041b6bf
mov esi, eax
mov dword [0x43bbec], 0xd260001
push dword [esi + 0x1c]
push ebx
call fcn.0041b6bf
push 0x2ee9ffff
push 0x7189ffff
mov dword [ebp - 4], eax
call fcn.004117d2
sub dword [0x43bbe8], 0x6f0e0000
add esp, 0x20
inc word [0x43bbd4]
mov dword [0x43bbf4], eax
cmp dword [esi + 0x14], edi
jbe 0x41c833
mov eax, dword [ebp - 4]
mov dword [ebp + 0xc], eax
movsx eax, byte [0x43bbcd]
push eax
push dword [0x43bc0c]
call fcn.00411762
movsx ax, byte [0x43bbcf]
sub eax, dword [0x43bbf4]
mov word [0x43bbe2], ax
mov eax, dword [ebp + 0xc]
push dword [eax]
push ebx
call fcn.0041b6bf
or word [0x43bbdc], 0xffff
add esp, 0x10
cmp eax, dword [ebp + 8]
je 0x41c833
dec byte [0x43bbce]
add dword [ebp + 0xc], 4
inc edi
cmp edi, dword [esi + 0x14]
jb 0x41c7e1
push dword [0x43bbf8]
push 0x8e79ffff
call fcn.00411820
add word [0x43bbda], ax
push 0xb315ffff
movsx eax, word [0x43bbdc]
push eax
call fcn.004116de
add dword [0x43bbe8], eax
inc word [0x43bbd4]
movsx eax, byte [0x43bbcd]
push eax
movsx eax, word [0x43bbde]
push eax
call fcn.004118e8
add esp, 0x18
mov byte [0x43bbce], al
cmp edi, dword [esi + 0x14]
jae 0x41ca15
mov eax, dword [0x43bc0c]
push eax
push eax
call fcn.004117aa
add byte [0x43bbca], al
mov eax, dword [ebp + 0x10]
sub eax, ebx
xor ebx, ebx
cmp word [0x43bbd2], bx
pop ecx
pop ecx
mov dword [ebp + 0x10], eax
je 0x41c8c8
cmp word [0x43bbe2], bx
mov word [0x43bbdc], 1
jne 0x41c8cf
mov word [0x43bbdc], bx
inc word [0x43bbd2]
push 0xdd37ffff
push 0xdc7ffff
call fcn.0041172e
mov word [0x43bbd2], ax
mov byte [0x43bbc8], 1
movsx eax, byte [0x43bbcd]
push eax
push 0x9351ffff
call fcn.004118e8
add dword [0x43bbf0], eax
mov eax, dword [0x43bbf4]
push dword [0x43bbe8]
imul eax, eax, 0xa549ffff
or byte [0x43bbcc], 0xff
push 0x1991ffff
mov dword [0x43bc0c], eax
mov dword [ebp + 0xc], ebx
call fcn.004116ab
mov word [0x43bbd6], ax
mov eax, dword [ebp - 4]
add esp, 0x18
lea esi, [eax + edi*4]
lea eax, [ebp + 0xc]
push eax
push 4
push 4
push esi
push 0x5f
call fcn.00415e0d
pop ecx
call eax
mov edi, eax
movsx eax, byte [0x43bbca]
push eax
movsx eax, word [0x43bbd2]
push eax
call fcn.004118e8
add byte [0x43bbce], al
pop ecx
cmp edi, ebx
pop ecx
je 0x41c9c3
push 0xc741ffff
push 0xd8cdffff
call fcn.004116ab
add dword [0x43bbf8], eax
cmp dword [0x43bbe8], ebx
pop ecx
pop ecx
je 0x41c9a4
cmp word [0x43bbe0], bx
je 0x41c9a4
push 1
pop ebx
mov eax, dword [ebp + 0x10]
add byte [0x43bbce], bl
mov dword [esi], eax
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 0xc]
push 4
push esi
push 0x5f
call fcn.00415e0d
pop ecx
call eax
push dword [0x43bbe8]
push 0x803dffff
call fcn.004117aa
add dword [0x43bc08], eax
push 0xd09ffff
push 0xc985ffff
call fcn.00411820
mov dword [0x43bc0c], eax
mov ax, word [0x43bc08]
add word [0x43bbe0], ax
push 0x748fffff
push 0x3b53ffff
call fcn.00411762
add esp, 0x18
add word [0x43bbde], ax
jmp 0x41ca42
push 0x5d6fffff
push 0x924dffff
call fcn.0041172e
add byte [0x43bbc9], al
pop ecx
movsx ax, byte [0x43bbc9]
imul eax, dword [0x43bbf8]
add word [0x43bbd6], ax
pop ecx
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
leave
ret 0xc