Function at 0x4044f0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x284
push esi
movzx eax, word [ebp - 0x1ac]
and eax, 0x63
mov word [ebp - 0x1ac], ax
movzx ecx, word [ebp - 0x110]
mov edx, dword [0x424024]
lea eax, [ecx + edx + 0x56]
mov word [ebp - 0x114], ax
mov dword [0x42401c], 0x2f
movzx ecx, byte [0x424030]
mov dword [0x424034], ecx
mov edx, dword [0x42402c]
mov dword [0x424024], edx
mov dword [ebp - 0x14], 0
mov eax, 0x43
sub eax, dword [ebp - 0x9c]
sub eax, 0x30
sub eax, dword [ebp - 0xc]
and eax, 7
mov byte [ebp - 0xa1], al
movzx ecx, word [ebp - 0x264]
sub ecx, dword [ebp - 0x1b4]
sub ecx, 0x34
movzx edx, byte [ebp - 0x1d1]
sub edx, ecx
mov byte [ebp - 0x1d1], dl
mov eax, dword [ebp - 0x9c]
sub eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x26c]
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x1b8], 0x82
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x230], ecx
mov edx, dword [ebp - 0x1b8]
add edx, 0x8a
mov word [ebp - 0xa0], dx
mov eax, dword [0x424020]
or eax, 0x114
mov byte [ebp - 5], al
movzx ecx, byte [0x42401c]
mov dword [0x424020], ecx
mov dword [ebp - 0x22c], 0x1e
mov edx, 0x5c
sub edx, dword [0x424030]
mov dword [ebp - 0xd4], edx
mov eax, dword [0x424048]
add eax, 0xd
mov dword [0x424048], eax
movzx ecx, word [ebp - 0x24]
mov dword [ebp - 0x138], ecx
movzx edx, word [ebp - 0x1bc]
sub edx, 0x26
movzx eax, byte [ebp - 0x121]
sub eax, edx
mov byte [ebp - 0x121], al
mov ecx, dword [ebp - 0x268]
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x9c]
sub edx, 0x4d
mov dword [ebp - 0x104], edx
mov eax, 0x61
sub eax, dword [ebp - 0x270]
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x15c], 0x14
movzx ecx, word [ebp - 0x120]
add ecx, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x1d0]
lea eax, [ecx + edx - 0x29]
or eax, dword [ebp - 0x1c0]
mov byte [ebp - 0xd9], al
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x280], ecx
cmp dword [ebp - 0x280], 3
ja case.default.0x40469e
mov edx, dword [ebp - 0x280]
jmp dword [edx*4 + 0x404e44]
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x26c], eax
movzx ecx, word [ebp - 0x254]
mov edx, 0x3f
sub edx, ecx
add edx, dword [0x424044]
mov dword [0x424044], edx
jmp 0x4048d8
mov eax, dword [0x424044]
add eax, 0x32
mov dword [0x424044], eax
mov esi, 0x5a
sub esi, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0xe0]
push edx
mov eax, dword [ebp - 0xa8]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
mov edx, dword [ebp - 0xac]
push edx
mov eax, dword [ebp - 0x268]
push eax
call fcn.004052d0
sub esi, eax
mov dword [ebp - 0xc0], esi
mov ecx, dword [str._Z_]
sub ecx, 6
mov dword [str._Z_], ecx
movzx edx, byte [ebp - 0x1d1]
mov eax, 0xfffffffd
sub eax, edx
mov byte [ebp - 0xfd], al
jmp 0x4048d8
movzx ecx, word [ebp - 0x120]
mov edx, 0x4f
sub edx, ecx
movzx eax, byte [ebp - 0xa1]
lea ecx, [edx + eax - 0x1a]
mov word [ebp - 0xf4], cx
movzx edx, word [ebp - 0xfc]
sub edx, 0x26
and edx, 0x41
movzx eax, word [ebp - 0x128]
add eax, edx
mov word [ebp - 0x128], ax
mov ecx, dword [ebp - 0x104]
push ecx
mov edx, dword [ebp - 0xa8]
push edx
mov eax, dword [ebp - 0xac]
push eax
push 0x28
push 0x58
mov ecx, dword [ebp - 0xac]
push ecx
push 0xf
call dword [sym.imp.GDI32.dll_GetGlyphOutlineA]
add eax, 0x11
sub eax, dword [ebp - 0x1b4]
and eax, 0x33
mov word [ebp - 0x1d8], ax
cmp dword [ebp - 0x26c], 0x59
jle 0x4047e3
movzx edx, word [ebp - 0x11c]
or edx, 0x3c
mov dword [ebp - 0x108], edx
mov eax, 0xcc
mov word [ebp - 0xd8], ax
jmp 0x40480d
movzx ecx, word [ebp - 0xd8]
add ecx, dword [ebp - 0x104]
xor ecx, dword [ebp - 0xc]
mov dword [ebp - 0x278], ecx
mov edx, 0x1d
sub edx, dword [ebp - 0x270]
add edx, 0x50
mov dword [ebp - 0x258], edx
jmp 0x4048d8
movzx eax, word [ebp - 0xa0]
cmp eax, dword [ebp - 0x2c]
jge 0x40484a
mov ecx, dword [ebp - 0x270]
sub ecx, dword [ebp - 0x108]
mov dword [ebp - 0xa8], ecx
movzx edx, byte [ebp - 0xfd]
mov eax, 0x2f
sub eax, edx
movzx ecx, word [ebp - 0xfc]
sub eax, ecx
mov dword [ebp - 0x1c], eax
movzx edx, byte [ebp - 0x122]
movzx eax, word [ebp - 0xec]
sub edx, eax
movzx ecx, word [ebp - 0x260]
or ecx, edx
mov word [ebp - 0x260], cx
mov edx, 1
test edx, edx
je 0x40488d
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0x278]
mov dword [ebp - 0x1b8], ecx
jmp 0x40489e
movzx edx, byte [ebp - 5]
mov eax, dword [ebp - 0x108]
lea ecx, [eax + edx + 0x30]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x25c]
add edx, dword [ebp - 0xac]
or edx, dword [ebp - 0x26c]
mov dword [ebp - 0xc0], edx
jmp 0x4048d8
movzx eax, byte [ebp - 0xfd]
mov ecx, dword [ebp - 0xcc]
lea edx, [ecx + eax + 0x85]
and edx, dword [ebp - 0xc4]
mov byte [ebp - 0xa1], dl
mov dword [ebp - 0xcc], 0x31
mov dword [ebp - 0x5c], 7
movzx eax, byte [ebp - 0x122]
mov ecx, 0x19
sub ecx, eax
mov dword [ebp - 0xb4], ecx
movzx edx, byte [ebp - 0xfd]
add edx, 0x68
movzx eax, byte [ebp - 0x121]
sub eax, edx
mov byte [ebp - 0x121], al
mov ecx, 0x32
sub ecx, dword [ebp - 0x26c]
add ecx, 8
mov byte [ebp - 6], cl
mov edx, dword [0x424034]
add edx, 0x46
mov word [ebp - 0x20], dx
mov eax, dword [0x424034]
mov dword [0x424028], eax
mov ecx, dword [ebp - 0xe0]
add ecx, 0x53
mov dword [ebp - 0xf0], ecx
mov edx, dword [ebp - 0x138]
add edx, 0x3a
mov dword [ebp - 0x1b4], edx
movzx esi, byte [ebp - 0x121]
add esi, dword [ebp - 0x12c]
movzx eax, byte [ebp - 5]
sub esi, eax
push 0x42
mov ecx, dword [ebp - 0x1b8]
push ecx
mov edx, dword [ebp - 0x1b8]
push edx
push 0x14
push 0x57
call dword [sym.imp.GDI32.dll_IntersectClipRect]
lea eax, [esi + eax + 0x34]
mov byte [ebp - 0x1c5], al
movzx ecx, word [ebp - 0xf8]
mov edx, dword [ebp - 0x104]
sub edx, ecx
mov eax, dword [ebp - 0x1b4]
sub eax, 5
xor edx, eax
mov byte [ebp - 6], dl
mov ecx, dword [0x42405c]
add ecx, 0xf
mov dword [0x42405c], ecx
movzx edx, word [ebp - 0xa0]
add edx, 0x4f
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x2c]
or edx, eax
mov word [ebp - 0x1d8], dx
movzx ecx, byte [ebp - 0x131]
mov edx, 0x49
sub edx, ecx
or edx, 0x27
mov byte [ebp - 0x1c5], dl
movzx eax, byte [ebp - 0x279]
mov ecx, dword [ebp - 0xa8]
lea edx, [eax + ecx + 0x23]
movzx eax, byte [ebp - 0x132]
sub edx, eax
mov word [ebp - 0xa0], dx
movzx ecx, byte [ebp - 0x121]
add ecx, dword [ebp - 0x26c]
movzx edx, word [ebp - 0xf4]
mov eax, dword [ebp - 4]
lea edx, [edx + eax + 0x1d]
or ecx, edx
mov byte [ebp - 0x1c5], cl
movzx eax, word [ebp - 0x1b0]
add eax, 0x4b
mov dword [ebp - 0xa8], eax
push 0x357a
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [0x430760], eax
mov ecx, 0x38
sub ecx, dword [ebp - 0xac]
movzx edx, byte [ebp - 7]
add edx, 0x40
or ecx, edx
mov word [ebp - 0x260], cx
movzx eax, byte [ebp - 0x121]
movzx ecx, byte [ebp - 5]
add ecx, eax
mov byte [ebp - 5], cl
mov edx, dword [str.K_n60]
cmp edx, dword [ebp - 0x138]
jle 0x404ab7
movzx eax, byte [ebp - 0xa1]
mov dword [0x424020], eax
mov ecx, dword [0x42402c]
and ecx, 0x37
mov edx, 0x19
sub edx, dword [0x424024]
or ecx, edx
mov word [ebp - 0x260], cx
mov eax, dword [ebp - 0x1d0]
add eax, 0x1d
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x224], 5
mov ecx, dword [ebp - 0x1c0]
add ecx, 0x55
mov dword [0x424028], ecx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x284], edx
cmp dword [ebp - 0x284], 0
je 0x404b10
cmp dword [ebp - 0x284], 1
je 0x404b97
cmp dword [ebp - 0x284], 2
je 0x404bff
jmp 0x404c75
movzx eax, word [ebp - 0x120]
mov ecx, dword [ebp - 0xa8]
add ecx, 0x12
xor eax, ecx
mov byte [ebp - 0x122], al
movzx edx, word [ebp - 0x20]
add edx, 0x33
or edx, 0x1f
movzx eax, word [ebp - 0x1ac]
sub eax, edx
mov word [ebp - 0x1ac], ax
movzx ecx, word [ebp - 0xfc]
cmp dword [ebp - 0xb4], ecx
jl 0x404b85
movzx edx, word [ebp - 0xfc]
add edx, dword [ebp - 0x138]
movzx eax, word [ebp - 0x1b0]
sub edx, eax
mov dword [ebp - 4], edx
mov ecx, 0x4a
sub ecx, dword [ebp - 0x108]
add ecx, 0x56
xor ecx, dword [ebp - 0x104]
mov word [ebp - 0x260], cx
movzx edx, byte [ebp - 0x1d1]
mov dword [0x42404c], edx
jmp 0x404c75
movzx eax, word [ebp - 0x110]
add eax, 0x7d
mov word [ebp - 0x110], ax
movzx ecx, word [ebp - 0x1a4]
sub ecx, 0x59
movzx edx, word [ebp - 0x1b0]
xor ecx, edx
movzx eax, word [ebp - 0x1d8]
imul eax, ecx
mov word [ebp - 0x1d8], ax
mov ecx, dword [0x42400c]
cmp ecx, dword [ebp - 0x1b8]
jle 0x404bf3
mov edx, dword [ebp - 0x270]
sub edx, 0x3c
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0x26c], 0xfffffff7
mov dword [str._Z_], 0x41
jmp 0x404c75
mov eax, dword [ebp - 0x104]
cmp eax, dword [0x424008]
jge 0x404c30
movzx ecx, word [ebp - 0x11c]
mov dword [ebp - 0x26c], ecx
movzx edx, word [ebp - 0xfc]
movzx eax, byte [ebp - 0x1d1]
and edx, eax
mov dword [ebp - 0xb4], edx
movzx ecx, byte [ebp - 0x279]
and ecx, 6
mov byte [ebp - 0x279], cl
movzx edx, word [ebp - 0xbc]
movzx eax, word [ebp - 0x110]
lea ecx, [edx + eax - 0x5e]
movzx edx, word [ebp - 0xd0]
add edx, ecx
mov word [ebp - 0xd0], dx
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + eax - 3]
mov dword [ebp - 0x25c], edx
movzx eax, word [ebp - 0xf8]
mov ecx, dword [ebp - 0xac]
lea edx, [ecx + eax + 0x40]
movzx eax, word [ebp - 0xa0]
lea ecx, [edx + eax + 0x59]
mov byte [ebp - 0xd9], cl
movzx edx, word [ebp - 0xc8]
sub edx, 0x62
movzx eax, word [ebp - 0xe8]
imul eax, edx
mov word [ebp - 0xe8], ax
mov ecx, dword [0x424030]
mov edx, dword [0x424024]
lea esi, [edx + ecx + 0x3f]
push 0x31
push 0x62
call dword [sym.imp.GDI32.dll_GetClipBox]
and esi, eax
mov word [ebp - 0xa0], si
movzx eax, byte [ebp - 5]
add eax, dword [0x42401c]
mov ecx, dword [0x42401c]
lea edx, [eax + ecx - 0x12]
sub edx, dword [0x424030]
mov byte [ebp - 5], dl
movzx eax, byte [ebp - 0xfd]
movzx ecx, byte [ebp - 6]
mov edx, dword [0x424024]
lea ecx, [edx + ecx + 1]
xor eax, ecx
mov word [ebp - 0x120], ax
mov edx, dword [ebp - 0x270]
sub edx, dword [ebp - 0x9c]
sub edx, dword [ebp - 0x1b4]
add edx, 0x18
mov word [ebp - 0x120], dx
mov al, byte [ebp - 0xc]
mov byte [ebp - 0x104], al
mov dword [ebp - 0x104], 0x4e
mov ecx, dword [ebp - 0xcc]
sub ecx, 0x5c
movzx edx, byte [ebp - 0x109]
and ecx, edx
movzx eax, byte [ebp - 0x279]
or ecx, eax
mov word [ebp - 0x11c], cx
mov ecx, dword [ebp - 0x104]
add ecx, 0x62
and ecx, 0x18
xor ecx, 0x3e
mov word [ebp - 0x11c], cx
movzx edx, word [ebp - 0xf4]
add edx, 0x29
movzx eax, byte [ebp - 0x121]
add eax, dword [ebp - 4]
or edx, eax
mov word [ebp - 0x130], dx
movzx ecx, byte [ebp - 5]
movzx edx, word [ebp - 0x264]
lea eax, [ecx + edx + 0x34]
mov word [ebp - 0xf4], ax
mov dword [ebp - 0xc], 0x5c
mov ecx, dword [ebp - 0x270]
mov edx, dword [ebp - 0xf0]
lea eax, [edx + ecx - 7]
mov ecx, dword [ebp - 0xcc]
add ecx, 0x19
or eax, ecx
mov byte [ebp - 0x1d1], al
mov edx, dword [0x424030]
add edx, 0x6f
mov byte [ebp - 6], dl
mov eax, dword [0x424030]
and eax, 0xd
mov dword [0x424030], eax
movzx ecx, word [ebp - 0x264]
mov edx, dword [ebp - 0xb0]
lea eax, [ecx + edx + 0x40]
and eax, 0x2d
or eax, 0x3b
mov byte [ebp - 0x1c5], al
mov dword [0x424024], 0x17
mov ecx, dword [0x424030]
push ecx
mov edx, dword [0x424030]
push edx
mov eax, dword [0x424028]
push eax
call fcn.004050d0
sub eax, 0x45
sub eax, dword [0x424024]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x14]
pop esi
mov esp, ebp
pop ebp
ret 8