Function at 0x405800
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b8
push ebx
push esi
mov eax, 0x12
sub eax, dword [0x424030]
movzx ecx, word [ebp - 0x284]
lea edx, [ecx + eax + 0x1d]
mov word [ebp - 0x284], dx
mov byte [ebp - 2], 0xf8
push 0x48
call dword [sym.imp.GDI32.dll_FlattenPath]
mov ecx, 0x32
sub ecx, eax
mov word [ebp - 0x1c], cx
mov dword [str._Z_], 0xffffffeb
mov dl, byte [0x424020]
mov byte [0x424034], dl
mov eax, 0x1569
mov word [ebp - 0xcc], ax
mov ecx, dword [0x424034]
add ecx, 0x5e
mov dword [0x424030], ecx
cmp dword [ebp - 0xa0], 0x1b
jge 0x405891
mov edx, dword [ebp - 0xc8]
xor edx, 0x28
movzx eax, word [ebp - 0xf8]
xor edx, eax
mov dword [ebp - 0x278], edx
movzx ecx, word [ebp - 0xc4]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0x1a0], edx
mov dword [ebp - 0x14c], 0x3a9
mov dword [ebp - 0x248], 0x22
movzx eax, word [ebp - 0x1d8]
movzx ecx, byte [ebp - 0x12d]
lea edx, [eax + ecx + 0x45]
sub edx, dword [ebp - 0x110]
mov word [ebp - 0x1c], dx
mov byte [ebp - 0x1ec], 0x16
mov dword [ebp - 0x224], 0x49
mov eax, 0x33
mov word [ebp - 0x10c], ax
mov ecx, dword [ebp - 0x10c]
mov dword [ebp - 0x22c], ecx
mov edx, 0x3bf5
mov word [ebp - 0x118], dx
mov eax, 0x61
sub eax, dword [ebp - 0x200]
mov ecx, dword [ebp - 0xac]
add ecx, 0x38
xor eax, ecx
mov byte [ebp - 9], al
movzx edx, word [ebp - 0x144]
movzx eax, byte [ebp - 0x1d9]
sub edx, eax
mov byte [ebp - 0xfd], dl
mov ecx, dword [ebp - 0xe0]
add ecx, 0x46
sub ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x29c]
sub edx, 0x58
or ecx, edx
mov byte [ebp - 0x1e], cl
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0xac]
add eax, dword [ebp - 0xd4]
movzx ecx, word [ebp - 0xf4]
sub eax, ecx
mov word [ebp - 0xbc], ax
movzx edx, word [ebp - 0x18]
add edx, 0x4b
mov dword [ebp - 0x288], edx
movzx eax, byte [ebp - 0x12e]
mov ecx, dword [ebp - 0xc8]
lea edx, [ecx + eax + 0x34]
or edx, dword [ebp - 0x24]
mov byte [ebp - 0x12d], dl
movzx eax, byte [ebp - 0x146]
movzx ecx, byte [ebp - 0x1e]
sub eax, ecx
sub eax, 0x3b
mov dword [ebp - 0x1d4], eax
mov edx, dword [0x424020]
push edx
call fcn.00403f20
mov dword [0x424024], eax
mov eax, dword [ebp - 0x1d4]
add eax, dword [0x424034]
xor eax, dword [0x424024]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x1e4]
mov dword [0x424020], ecx
movzx edx, word [ebp - 0x128]
mov eax, 0x25
sub eax, edx
mov dword [0x42402c], eax
mov ecx, 0x41
sub ecx, dword [ebp - 0x278]
movzx edx, word [ebp - 0xf8]
add edx, dword [ebp - 0x1ec]
or ecx, edx
or ecx, 0x48
mov byte [ebp - 0x145], cl
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x25c], 0x47
mov dword [ebp - 0x290], 0x62f0
movzx ecx, byte [ebp - 0x295]
mov edx, 0x55
sub edx, ecx
movzx eax, byte [ebp - 0x295]
add edx, eax
sub edx, dword [ebp - 0x134]
sub edx, dword [ebp - 0x1e4]
mov byte [ebp - 0x145], dl
mov ecx, dword [ebp - 0x140]
add ecx, dword [ebp - 0x27c]
add ecx, dword [ebp - 0xc8]
mov dword [ebp - 0x1d4], ecx
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0x30], edx
movzx eax, word [ebp - 0x280]
add eax, 0x58
mov dword [ebp - 0xe0], eax
mov cx, word [ebp - 0x200]
mov word [ebp - 0xa0], cx
mov edx, dword [ebp - 0xa0]
mov dword [ebp - 0x218], edx
push 0x27
mov eax, dword [ebp - 0x110]
push eax
push 0x25
push 0xb
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [ebp - 0x1d4]
lea edx, [eax + ecx + 0x49]
mov byte [ebp - 0x1d9], dl
mov eax, 0x30
sub eax, dword [0x424034]
mov ecx, dword [0x424034]
sub ecx, dword [0x424020]
sub ecx, dword [0x42402c]
xor eax, ecx
mov byte [ebp - 0x146], al
mov edx, dword [0x42402c]
sub edx, dword [0x424020]
xor edx, dword [0x424034]
or edx, 0x23
mov word [ebp - 0x1c8], dx
mov dword [0x424020], 0x51
mov eax, dword [0x424030]
add eax, 0x66
movzx ecx, byte [ebp - 0x12d]
sub eax, ecx
movzx edx, byte [ebp - 0x12d]
and eax, edx
mov byte [ebp - 0xa], al
mov eax, dword [0x42401c]
mov dword [ebp - 0x1a0], eax
movzx ecx, byte [ebp - 0xa]
and ecx, dword [0x424024]
mov dword [0x424030], ecx
mov edx, dword [ebp - 0x14]
add edx, 1
movzx eax, word [ebp - 0x18]
sub edx, eax
mov dword [ebp - 0xb4], edx
movzx ecx, word [ebp - 0x13c]
add ecx, dword [ebp - 0x1cc]
mov dword [0x424040], ecx
push 0x25
push 0x15
call dword [sym.imp.GDI32.dll_GetRgnBox]
mov edx, 0x44
sub edx, eax
add edx, 0xe
movzx eax, byte [ebp - 0x145]
add eax, 0x5e
xor edx, eax
mov byte [ebp - 0x12e], dl
mov ecx, 0x10
sub ecx, dword [ebp - 0x140]
movzx edx, byte [ebp - 0x1e]
add edx, dword [ebp - 0xc0]
and ecx, edx
xor ecx, dword [ebp - 0xac]
mov byte [ebp - 9], cl
mov dword [ebp - 0xc0], 0x1c
mov dword [ebp - 0x18c], 0x41
mov eax, dword [ebp - 0x29c]
mov dword [ebp - 0x200], eax
mov dword [ebp - 0xa4], 0
mov ecx, dword [ebp - 0x104]
add ecx, 0x3d
mov dword [ebp - 0x29c], ecx
movzx edx, word [ebp - 0xb0]
movzx eax, word [ebp - 0x274]
lea ecx, [eax + edx - 1]
mov word [ebp - 0x274], cx
movzx edx, byte [ebp - 0x1d9]
mov dword [ebp - 0x200], edx
push 0x54
call dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 0xc8], eax
movzx eax, word [ebp - 0x1d8]
or eax, 0x4d
mov dword [ebp - 0x140], eax
mov ecx, dword [ebp - 0x200]
mov dword [ebp - 0x19c], ecx
mov edx, dword [ebp - 0xa0]
push edx
mov eax, dword [ebp - 0x29c]
push eax
call dword [sym.imp.GDI32.dll_CopyMetaFileW]
mov dword [ebp - 0xc8], eax
mov ecx, 0x3e
sub ecx, dword [ebp - 0x1ec]
mov dword [ebp - 0x134], ecx
mov ebx, 0x21
sub ebx, dword [ebp - 0xc4]
add ebx, dword [ebp - 0x288]
push 0x58
call dword [sym.imp.USER32.dll_ArrangeIconicWindows]
or ebx, eax
movzx edx, word [ebp - 0x144]
or ebx, edx
mov byte [ebp - 0xfd], bl
push 0
push 0
call fcn.004044f0
mov dword [0x44d7a0], eax
mov dword [0x424058], 0x2d
movzx eax, word [ebp - 0x18]
add eax, dword [0x424060]
mov dword [0x424060], eax
mov ecx, dword [ebp - 0x29c]
push ecx
mov edx, dword [ebp - 0x1ec]
push edx
mov eax, dword [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x134]
push ecx
mov edx, dword [ebp - 0x288]
push edx
call fcn.00401e20
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x10c]
lea ecx, [edx + ecx - 0x47]
or eax, ecx
mov word [ebp - 0x1c], ax
movzx edx, word [ebp - 0x284]
cmp edx, 0xa
jg 0x405d45
movzx eax, word [ebp - 0x144]
add eax, dword [0x424030]
and eax, 0xffffffed
mov word [ebp - 0x1c], ax
mov ecx, dword [0x424024]
push ecx
mov edx, dword [0x42401c]
push edx
push 0x17
call dword [sym.imp.USER32.dll_MapVirtualKeyExW]
mov dword [0x424034], eax
mov dword [0x424030], 0x3e
mov eax, dword [ebp - 0xa0]
cmp eax, dword [0x42400c]
jl 0x405d76
mov ecx, dword [ebp - 0x140]
mov dword [0x424028], ecx
movzx edx, word [ebp - 0x128]
mov dword [0x424024], edx
mov eax, dword [0x424034]
mov dword [0x42402c], eax
mov dword [ebp - 0x238], 0x35
mov dword [ebp - 0xe4], 0xc67d
mov dword [0x424024], 0x4a
mov dword [ebp - 0x28c], 0
mov dword [0x424030], 0x55
mov ecx, dword [0x424024]
mov dword [0x424030], ecx
push 0x5e
mov edx, dword [0x42402c]
push edx
call dword [sym.imp.USER32.dll_MapDialogRect]
mov ecx, 0x18
sub ecx, eax
add ecx, 0xc
mov dword [ebp - 0x278], ecx
mov edx, dword [ebp - 0xa0]
sub edx, 0x14
movzx eax, word [ebp - 0xf8]
sub eax, edx
mov word [ebp - 0xf8], ax
mov dword [ebp - 0x248], 0x3c
mov ecx, dword [ebp - 0x10c]
mov dword [ebp - 0x10c], ecx
movzx edx, word [ebp - 0x98]
movzx eax, word [ebp - 0x11c]
lea ecx, [edx + eax - 0x45]
movzx edx, word [ebp - 0x26c]
sub edx, ecx
mov word [ebp - 0x26c], dx
movzx eax, byte [ebp - 0x1d]
mov ecx, 0x23
sub ecx, eax
movzx edx, word [ebp - 0x1c8]
sub ecx, edx
xor ecx, dword [ebp - 0xb4]
mov word [ebp - 0xf8], cx
mov eax, dword [ebp - 0x278]
sub eax, 0x39
xor eax, dword [ebp - 0x29c]
or eax, dword [ebp - 0x124]
mov word [ebp - 0x128], ax
mov ecx, dword [ebp - 0xc4]
sub ecx, 0x1b
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x24], 0x27
movzx edx, byte [ebp - 0x12d]
mov eax, 0x1a
sub eax, edx
mov ecx, dword [ebp - 0x140]
lea edx, [eax + ecx - 0x4c]
mov word [ebp - 0xf8], dx
mov eax, 0xa0
mov word [ebp - 0xbc], ax
movzx ecx, byte [0x424020]
mov dword [0x424024], ecx
movzx edx, byte [ebp - 0xfd]
mov eax, dword [0x424024]
sub eax, edx
mov ecx, dword [0x424028]
lea edx, [eax + ecx - 0x3a]
mov word [ebp - 0x18], dx
mov eax, dword [0x424024]
mov dword [0x424030], eax
movzx ecx, byte [ebp - 0x12d]
sub ecx, dword [0x424028]
mov dword [0x424024], ecx
mov edx, dword [ebp - 0x10c]
push edx
mov eax, dword [ebp - 0x110]
push eax
mov ecx, dword [ebp - 0x1cc]
push ecx
mov edx, dword [ebp - 0x10c]
push edx
mov eax, dword [ebp - 0xc0]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.00402ef0
add eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x1ec]
movzx edx, byte [ebp - 0x1e]
lea eax, [eax + edx - 6]
mov byte [ebp - 0x1e5], al
mov ecx, dword [ebp - 0xc0]
add ecx, 0x55
movzx edx, word [ebp - 0xf8]
mov eax, dword [ebp - 0xac]
lea edx, [eax + edx + 0x18]
and ecx, edx
mov byte [ebp - 0x12e], cl
mov eax, dword [ebp - 0x1cc]
sub eax, 0x21
or eax, dword [ebp - 0xc0]
mov dword [ebp - 0x140], eax
mov cl, byte [ebp - 0xc0]
mov byte [ebp - 0xe0], cl
mov dword [ebp - 0x114], 0x783b
mov dword [0x424030], 0x63
movzx edx, byte [ebp - 0x12d]
add edx, 0x1e
mov byte [ebp - 0x12d], dl
mov eax, dword [0x42401c]
mov ecx, dword [0x424024]
lea edx, [ecx + eax + 0x4d]
mov byte [ebp - 0x99], dl
mov dword [ebp - 0x1f8], 0
movzx eax, byte [ebp - 0x1e5]
add eax, 0x64
xor eax, 0x51
mov dword [ebp - 0xa8], eax
mov ecx, dword [0x42402c]
mov dword [ebp - 0x214], ecx
mov edx, dword [0x424024]
mov dword [0x42402c], edx
mov dword [ebp - 0x1f4], 0
mov eax, dword [ebp - 0x1cc]
add eax, 0x48
movzx ecx, byte [ebp - 0xa]
movzx edx, word [ebp - 0xbc]
add ecx, edx
xor eax, ecx
mov word [ebp - 0xd8], ax
movzx eax, word [ebp - 0x98]
mov esi, dword [ebp - 0x294]
sub esi, eax
mov ecx, dword [ebp - 0x1cc]
push ecx
mov edx, dword [ebp - 0x1ec]
push edx
mov eax, dword [ebp - 0xc0]
push eax
mov ecx, dword [ebp - 0xa0]
push ecx
mov edx, dword [ebp - 0xc8]
push edx
call fcn.00403b20
sub esi, eax
add esi, dword [ebp - 0x288]
mov word [ebp - 0xf8], si
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x2b4], eax
cmp dword [ebp - 0x2b4], 3
ja case.default.0x406074
mov ecx, dword [ebp - 0x2b4]
jmp dword [ecx*4 + 0x406f64]
mov edx, dword [ebp - 0xc0]
mov dword [0x424058], edx
cmp dword [0x424004], 0x48
jl 0x4060c1
movzx eax, word [ebp - 0x98]
add eax, dword [ebp - 0xf0]
xor eax, dword [ebp - 0xe0]
or eax, 0x76
mov byte [ebp - 0x1e], al
mov ecx, dword [ebp - 0x10c]
add ecx, 0x3a
sub ecx, dword [ebp - 0xac]
add ecx, 0x35
mov byte [ebp - 0x99], cl
jmp 0x406204
movzx edx, byte [ebp - 0xb]
cmp edx, dword [ebp - 0x140]
jne 0x40610d
movzx eax, byte [ebp - 0x295]
mov ecx, dword [ebp - 0xac]
lea edx, [ecx + eax + 0xa2]
mov word [ebp - 0x1c8], dx
movzx eax, byte [ebp - 0xd9]
mov ecx, dword [ebp - 0xa0]
lea edx, [eax + ecx + 0x48]
or edx, dword [ebp - 0x27c]
mov word [ebp - 0x12c], dx
jmp 0x406117
mov dword [ebp - 0x134], 0xb
jmp 0x406204
movzx eax, word [ebp - 0x274]
mov ecx, dword [ebp - 0xe0]
lea edx, [eax + ecx - 0x22]
mov word [ebp - 0x274], dx
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xac], eax
movzx ecx, word [ebp - 0x1fc]
cmp ecx, 0x49
jne 0x406183
mov edx, 0xa1
sub edx, dword [ebp - 0x27c]
add edx, dword [ebp - 0xc8]
movzx eax, word [ebp - 0x1fc]
sub edx, eax
mov byte [ebp - 0x12d], dl
mov esi, dword [ebp - 0x94]
sub esi, 0x50
call dword [sym.imp.USER32.dll_AnyPopup]
sub esi, eax
mov dword [ebp - 0xf0], esi
jmp 0x406204
movzx ecx, byte [ebp - 0x295]
cmp ecx, 0x3c
jg 0x4061ac
movzx edx, word [ebp - 0xf4]
sub edx, dword [ebp - 0x24]
movzx eax, byte [ebp - 0x1d9]
add edx, eax
mov dword [ebp - 0x294], edx
jmp 0x4061d3
mov dword [ebp - 0x14], 0x88
mov ecx, dword [ebp - 0xe0]
add ecx, 0x28
and ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0x1e4]
add edx, dword [ebp - 0x10c]
xor ecx, edx
mov byte [ebp - 0x1e], cl
movzx eax, byte [ebp - 0x1e5]
or eax, dword [ebp - 0x24]
mov dword [ebp - 0x1ec], eax
movzx ecx, word [ebp - 0x144]
add ecx, dword [0x424048]
mov dword [0x424048], ecx
jmp 0x406204
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0x1cc], edx
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x1ec]
add ecx, 0x3c
mov dword [ebp - 0xc8], ecx
movzx edx, byte [ebp - 0xfd]
sub edx, 9
mov dword [ebp - 0x288], edx
movzx eax, byte [ebp - 0x12d]
add eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x124]
add ecx, 0x1d
or eax, ecx
mov word [ebp - 0x1c8], ax
movzx edx, word [ebp - 0xf8]
and edx, 0x4b
or edx, 0x5d
mov dword [ebp - 0x1e4], edx
movzx eax, word [ebp - 0xf4]
mov ecx, dword [ebp - 0x29c]
lea edx, [ecx + eax + 0x4b]
sub edx, dword [ebp - 0x29c]
mov word [ebp - 0x1fc], dx
mov dword [ebp - 0xe0], 0x31
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xe0], eax
mov ecx, 0x13
sub ecx, dword [ebp - 0x29c]
add ecx, dword [ebp - 0x10c]
xor ecx, 0x3e
mov word [ebp - 0x284], cx
mov edx, 0x23
sub edx, dword [ebp - 0xc8]
sub edx, dword [ebp - 0x24]
add edx, 0x10
mov word [ebp - 0x18], dx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x288]
lea edx, [ecx + eax + 0x58]
mov eax, 0x37
sub eax, dword [ebp - 0xc8]
or edx, eax
mov byte [ebp - 0x1d9], dl
mov ecx, dword [ebp - 0x200]
add ecx, 0x26
movzx edx, byte [ebp - 0x1d]
sub ecx, edx
mov byte [ebp - 0xb], cl
movzx eax, byte [ebp - 0x23e]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x6c], 0x3e
mov ecx, 0x59c4
mov word [ebp - 0x1f0], cx
movzx edx, byte [ebp - 0xd9]
sub edx, 0xb
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0x1cc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov esi, eax
mov ecx, dword [ebp - 0x110]
push ecx
call fcn.004054d0
lea edx, [esi + eax + 0xd7]
mov byte [ebp - 0xb], dl
mov dword [ebp - 0x88], 0x1b
push 0xb
mov eax, dword [ebp - 0x288]
push eax
call dword [sym.imp.GDI32.dll_GetAspectRatioFilterEx]
movzx ecx, byte [ebp - 0x12d]
add ecx, dword [ebp - 0xc4]
xor eax, ecx
mov dword [ebp - 0xb4], eax
movzx edx, word [ebp - 0xbc]
mov eax, dword [0x424040]
sub eax, edx
mov dword [0x424040], eax
mov ecx, dword [0x424039]
mov dword [0x424030], ecx
mov dword [ebp - 0x228], 0x4d
mov dword [ebp - 0x2a4], 0x351
mov edx, 0x3e
sub edx, dword [0x424030]
movzx eax, byte [ebp - 0x145]
xor edx, eax
mov word [ebp - 0xbc], dx
mov ecx, 0x4f
mov word [0x42401c], cx
mov edx, dword [0x424030]
mov dword [ebp - 0x60], edx
mov dword [0x424020], 0x3a
mov eax, dword [ebp - 0x134]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xe0]
push edx
mov eax, dword [ebp - 0x134]
push eax
mov ecx, dword [ebp - 0xe0]
push ecx
call fcn.00404290
mov edx, dword [ebp - 0xe0]
sub edx, dword [ebp - 0x134]
xor eax, edx
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x1cc]
add ecx, 0x60
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp - 0x110]
add edx, 0x74
mov word [ebp - 0x1c], dx
mov eax, dword [ebp - 0x200]
mov dword [ebp - 0x2b8], eax
cmp dword [ebp - 0x2b8], 0
je 0x40646b
cmp dword [ebp - 0x2b8], 1
je 0x4064ad
jmp 0x4064f1
movzx ecx, byte [ebp - 0x146]
add ecx, 0x27
movzx edx, word [ebp - 0xfc]
sub ecx, edx
movzx eax, word [ebp - 0x144]
or eax, ecx
mov word [ebp - 0x144], ax
movzx ecx, byte [ebp - 0x295]
movzx edx, byte [ebp - 0x12e]
sub ecx, edx
and ecx, 0x5d
movzx eax, word [ebp - 0x18]
add eax, ecx
mov word [ebp - 0x18], ax
jmp 0x406510
cmp dword [ebp - 0x294], 0x14
ja 0x4064d1
mov ecx, dword [ebp - 0x1ec]
sub ecx, 0x2d
mov dword [ebp - 0x288], ecx
mov edx, dword [ebp - 0x134]
mov dword [ebp - 0x134], edx
movzx eax, word [ebp - 0xd0]
movzx ecx, word [ebp - 0xd8]
sub eax, ecx
mov edx, dword [0x42404c]
sub edx, eax
mov dword [0x42404c], edx
jmp 0x406510
mov esi, 0x41
sub esi, dword [ebp - 0xb8]
push 0x10
call dword [sym.imp.USER32.dll_GetSysColorBrush]
sub esi, eax
xor esi, dword [ebp - 0x14]
mov word [ebp - 0xbc], si
mov eax, 0x40
sub eax, dword [ebp - 0x1cc]
sub eax, 0x34
mov word [ebp - 0x98], ax
movzx ecx, word [ebp - 0xbc]
mov dword [ebp - 0x24], ecx
movzx edx, word [ebp - 0x98]
movzx eax, word [ebp - 0x1c8]
add edx, eax
mov dword [ebp - 0x1cc], edx
mov ecx, dword [ebp - 0x134]
add ecx, 0x5a
sub ecx, dword [ebp - 0x1cc]
mov dword [ebp - 8], ecx
movzx edx, word [ebp - 0x1d8]
mov dword [ebp - 0x110], edx
movzx eax, byte [ebp - 0xb]
sub eax, 0x14
mov byte [ebp - 0xb], al
mov byte [ebp - 0x10c], 0x54
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0xe0], ecx
mov edx, dword [ebp - 0xa4]
add edx, 1
mov dword [ebp - 0x1f4], edx
mov eax, dword [ebp - 0xd4]
add eax, 0x18
and eax, 0x50
mov dword [ebp - 0x27c], eax
mov ecx, dword [ebp - 0xa0]
sub ecx, 0x44
sub ecx, dword [ebp - 0x29c]
movzx edx, word [ebp - 0xf4]
or ecx, edx
mov word [ebp - 0x18], cx
mov eax, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x1ec]
lea edx, [ecx + eax - 0x4f]
mov dword [ebp - 0x27c], edx
movzx eax, byte [ebp - 0x295]
mov dword [0x424024], eax
mov ecx, 0x424024
sub ecx, 0xe
movzx edx, byte [ecx]
mov dword [0x42402c], edx
mov eax, dword [0x424030]
mov dword [ebp - 0x230], eax
mov ecx, dword [0x42402c]
sub ecx, 0x41
sub ecx, dword [0x42402c]
sub ecx, dword [ebp - 0xf0]
mov word [ebp - 0xf8], cx
movzx edx, byte [ebp - 0x99]
sub edx, dword [0x42402c]
mov dword [0x424020], edx
mov eax, 0x1c
sub eax, dword [ebp - 0x94]
add eax, dword [0x424024]
mov dword [ebp - 0x1d4], eax
movzx ecx, byte [ebp - 0x12d]
mov edx, dword [ebp - 0x134]
lea eax, [ecx + edx + 0x20]
add eax, dword [ebp - 0x140]
mov word [ebp - 0xfc], ax
mov dword [ebp - 0x10c], 0x4d
movzx ecx, byte [ebp - 0xfd]
sub ecx, 0x12
sub ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x27c], ecx
lea edx, [ebp - 0xe0]
sub edx, 0x26
movzx eax, word [edx]
mov dword [ebp - 0x29c], eax
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x2a0], 0xf44a
mov edx, dword [ebp - 0x110]
add edx, 0x11
mov eax, dword [ebp - 0x134]
xor eax, 0x43
or edx, eax
mov word [ebp - 0x128], dx
mov ecx, dword [ebp - 0x24]
xor ecx, 0x56
mov dword [0x42404c], ecx
movzx edx, word [ebp - 0x18]
sub edx, dword [ebp - 0x104]
or edx, 0x27
mov dword [ebp - 0x27c], edx
mov eax, dword [ebp - 0x29c]
xor eax, 0x5d
mov dword [ebp - 0x29c], eax
movzx ecx, word [ebp - 0xbc]
mov edx, dword [ebp - 0xc4]
lea eax, [ecx + edx - 0x29]
or eax, dword [ebp - 0x288]
mov word [ebp - 0x1c8], ax
movzx ecx, byte [ebp - 0x105]
mov edx, dword [0x424024]
sub edx, ecx
movzx eax, word [ebp - 0x1fc]
add eax, 0x18
or edx, eax
mov word [ebp - 0xbc], dx
mov ecx, dword [0x424020]
mov dword [ebp - 0x64], ecx
mov edx, dword [0x424020]
sub edx, dword [0x424024]
mov dword [0x424030], edx
mov eax, dword [ebp - 0x294]
mov dword [0x424028], eax
movzx ecx, byte [ebp - 0xb]
mov edx, dword [0x42402c]
lea eax, [edx + ecx + 0x19]
sub eax, dword [0x42401c]
mov word [ebp - 0x1c8], ax
mov dword [0x42402c], 0x1a
movzx ecx, byte [ebp - 0xa]
add ecx, 0x3a
mov byte [ebp - 0x1e5], cl
mov dword [ebp - 0x2b0], 0x1da
mov edx, dword [ebp - 0xa4]
add edx, 1
xor edx, dword [0x430764]
mov eax, dword [ebp - 0x1f4]
xor eax, dword [0x430764]
xor edx, eax
mov dword [0x44d7a4], edx
mov ecx, dword [ebp - 0x288]
sub ecx, 0x3c
movzx edx, byte [ebp - 0x1e]
sub ecx, edx
mov dword [ebp - 0xb4], ecx
mov eax, dword [ebp - 0xac]
add eax, 0x12
mov ecx, 0x91
sub ecx, dword [ebp - 0x200]
or eax, ecx
mov byte [ebp - 0xfd], al
mov edx, dword [ebp - 0x124]
add edx, dword [ebp - 0x10c]
sub edx, dword [ebp - 0xc4]
movzx eax, byte [ebp - 0x295]
sub edx, eax
mov word [ebp - 0x144], dx
movzx ecx, word [ebp - 0x144]
add ecx, 1
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0xb8]
add edx, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0x278]
lea ecx, [edx + eax - 0x4c]
mov word [ebp - 0xbc], cx
movzx edx, word [ebp - 0x10]
movzx eax, byte [ebp - 0x99]
xor edx, eax
movzx ecx, byte [ebp - 0xfd]
sub ecx, edx
mov byte [ebp - 0xfd], cl
mov edx, 0xbd
mov word [ebp - 0x98], dx
movzx eax, word [ebp - 0xd0]
and eax, 5
mov word [ebp - 0xd0], ax
movzx ecx, byte [ebp - 0x99]
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0x1cc], 0x43
movzx edx, word [ebp - 0xfc]
movzx eax, byte [ebp - 0x1e5]
sub edx, eax
add edx, 0x56
mov dword [ebp - 0x1e4], edx
mov ecx, dword [ebp - 0x1d4]
add ecx, 0x27
movzx edx, word [ebp - 0xbc]
mov eax, 0x46
sub eax, edx
xor eax, 0x22
or ecx, eax
mov byte [ebp - 0x146], cl
mov ecx, dword [ebp - 0x1ec]
add ecx, 0x5e
and ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x124], ecx
movzx edx, word [ebp - 0x26c]
mov eax, 0x48
sub eax, edx
movzx ecx, word [ebp - 0x1d8]
sub ecx, eax
mov word [ebp - 0x1d8], cx
mov dword [ebp - 0x18c], 0x52
mov edx, 9
sub edx, dword [ebp - 0xc0]
movzx eax, word [ebp - 0xbc]
add edx, eax
mov ecx, dword [ebp - 0x10c]
add ecx, 0xf
xor edx, ecx
mov byte [ebp - 0x105], dl
movzx edx, word [ebp - 0xfc]
mov eax, 0x20
sub eax, edx
sub eax, 0x35
mov word [ebp - 0xf4], ax
mov ecx, dword [ebp - 0xac]
sub ecx, 0x24
xor ecx, 0xfffffff2
mov word [ebp - 0xd8], cx
movzx edx, byte [0x424028]
mov dword [0x424020], edx
mov eax, dword [0x42402c]
mov dword [ebp - 0x70], eax
mov ecx, dword [0x424024]
push ecx
mov edx, dword [0x424024]
push edx
mov eax, dword [0x42402c]
push eax
mov ecx, dword [0x424028]
push ecx
mov edx, dword [0x424024]
push edx
mov eax, dword [0x424020]
push eax
call fcn.00404070
mov ecx, dword [0x424028]
lea edx, [eax + ecx + 0x2a]
movzx eax, word [ebp - 0x18]
sub edx, eax
or edx, 0x25
mov byte [ebp - 0x1e5], dl
mov ecx, dword [0x42402c]
mov dword [0x42401c], ecx
movzx edx, word [ebp - 0x18]
and edx, dword [0x42401c]
mov dword [0x42401c], edx
mov eax, 0x42401c
sub eax, 0x64
movzx ecx, word [eax]
mov dword [0x424030], ecx
mov edx, dword [0x424028]
mov dword [ebp - 0x17c], edx
mov dword [0x42401c], 0x32
mov eax, dword [ebp - 0x104]
sub eax, dword [ebp - 0x1cc]
movzx ecx, word [ebp - 0xf4]
add ecx, 0x44
xor eax, ecx
mov word [ebp - 0x98], ax
mov edx, dword [ebp - 8]
add edx, dword [ebp - 0x1ec]
mov dword [ebp - 0x110], edx
mov eax, dword [0x44d7a4]
cdq
mov ecx, dword [ebp - 0xa4]
add eax, dword [ecx*8 + 0x424088]
mov ecx, dword [ecx*8 + 0x42408c]
adc ecx, edx
mov edx, dword [0x430760]
add edx, dword [ebp - 0xa4]
mov byte [edx], al
mov eax, dword [ebp - 0xc0]
add eax, dword [ebp - 0x200]
movzx ecx, byte [ebp - 0x146]
mov edx, dword [ebp - 0x10c]
sub edx, ecx
movzx ecx, byte [ebp - 0xd9]
and edx, ecx
xor eax, edx
mov byte [ebp - 0x1e5], al
mov edx, 0x3e
sub edx, dword [ebp - 0x1ec]
mov eax, dword [ebp - 0xc8]
add eax, 0x4e
xor edx, eax
mov word [ebp - 0x1c], dx
mov ecx, dword [ebp - 0x94]
add ecx, 0x66
and ecx, dword [ebp - 0xd4]
mov word [ebp - 0x1fc], cx
movzx edx, word [ebp - 0xf4]
mov eax, 0xc
sub eax, edx
movzx ecx, word [ebp - 0xd8]
add ecx, dword [0x424020]
or eax, ecx
mov word [ebp - 0xf4], ax
mov edx, dword [0x424030]
mov dword [0x42402c], edx
movzx eax, byte [ebp - 0x145]
mov ecx, 0x57
sub ecx, eax
mov edx, dword [0x424024]
sub edx, 0x43
and ecx, edx
and ecx, dword [0x424024]
mov byte [ebp - 0xfd], cl
mov eax, dword [0x424044]
imul eax, eax, 0x2c
mov dword [0x424044], eax
mov ecx, dword [0x424034]
mov dword [ebp - 0x7c], ecx
movzx edx, byte [ebp - 0x99]
mov eax, dword [ebp - 0x294]
lea ecx, [edx + eax + 0x26]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0xa4]
add edx, 1
mov dword [ebp - 0xa4], edx
movzx eax, byte [ebp - 0x12d]
and eax, 0x52
mov dword [ebp - 0xa0], eax
mov ecx, 0xb
mov word [ebp - 0x10c], cx
mov dword [ebp - 0x2a8], 4
movzx edx, word [ebp - 0x144]
add edx, 0x62
xor edx, 0x77
xor edx, 0x2c
mov byte [ebp - 0x146], dl
mov dword [ebp - 0xa0], 0x4f
mov dword [ebp - 0x2ac], 0x112
mov dword [ebp - 0xc0], 0xf
movzx eax, word [ebp - 0xbc]
movzx ecx, byte [ebp - 0x146]
xor ecx, eax
mov byte [ebp - 0x146], cl
mov dword [0x424028], 0x55
mov dword [ebp - 0x54], 0x5e
mov edx, dword [ebp - 0xa4]
cmp edx, dword [0x424080]
jne 0x40637a
movzx eax, byte [ebp - 0x1d9]
mov ecx, 0x18
sub ecx, eax
mov dword [ebp - 0x94], ecx
mov edx, dword [0x42401c]
push edx
mov eax, dword [0x424034]
push eax
call fcn.00401580
sub eax, 8
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0x288], 0x66
movzx ecx, word [ebp - 0x1d8]
add ecx, 0x82
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0xac]
sub edx, 8
sub edx, dword [ebp - 0x200]
mov word [ebp - 0x1d8], dx
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x168], eax
mov bl, 0xff
mov eax, dword [0x44d7a8]
cmp al, bl
jne 0x406c39
jmp 0x406c47
sub ecx, 0xd
cmp ecx, 0
mov eax, ecx
push eax
jmp 0x406ef7
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x1a4], ecx
mov dx, word [ebp - 0x10c]
mov word [ebp - 0xc0], dx
mov dword [ebp - 0x218], 0xd
mov eax, dword [ebp - 0xa8]
sub eax, dword [ebp - 0xb8]
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp + 8]
mov dword [0x44d768], ecx
mov edx, dword [ebp - 0xc4]
sub edx, dword [ebp - 0xb4]
xor edx, dword [ebp - 0x110]
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x10c]
sub eax, 0xf
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x29c], 0xfffffffc
movzx ecx, word [ebp - 0xd8]
add ecx, dword [ebp - 0x24]
movzx edx, word [ebp - 0x1fc]
mov eax, dword [ebp - 0x10c]
sub eax, edx
and ecx, eax
xor ecx, 0x64
mov byte [ebp - 0xd9], cl
movzx ecx, byte [ebp - 0x12d]
xor ecx, 0x55
mov edx, dword [0x424058]
sub edx, ecx
mov dword [0x424058], edx
mov dword [ebp - 0xe0], 0x45
movzx eax, byte [ebp - 0xb]
mov ecx, dword [ebp - 0x200]
sub ecx, eax
movzx edx, word [ebp - 0x1c8]
sub ecx, edx
mov dword [ebp - 0x1d4], ecx
movzx eax, word [ebp - 0x1fc]
mov ecx, dword [ebp - 0x94]
lea edx, [eax + ecx + 0x17]
mov dword [ebp - 0x1e4], edx
mov dword [0x424034], 0x53
mov eax, dword [0x424020]
sub eax, dword [0x424034]
mov dword [0x42401c], eax
mov ecx, dword [0x42401c]
and ecx, 0x4e
mov dword [0x42401c], ecx
movzx edx, word [ebp - 0xbc]
add edx, 0x51
and edx, 0x69
mov word [ebp - 0x280], dx
mov eax, 0x10
mov word [ebp - 0x1c0], ax
mov ecx, dword [0x424020]
mov dword [0x424020], ecx
mov edx, dword [0x42402c]
mov dword [ebp - 0x18c], edx
mov dword [0x424034], 0x10
movzx eax, word [ebp - 0x144]
mov ecx, dword [str._Z_]
lea edx, [ecx + eax - 0x2b]
mov dword [str._Z_], edx
mov eax, dword [ebp - 0x1cc]
add eax, 0x11
sub eax, dword [ebp - 0x1cc]
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0x110], 0x58
jle 0x406df2
mov dword [ebp - 0xc4], 0x41
movzx ecx, byte [ebp - 0x105]
sub ecx, 7
sub ecx, dword [ebp - 0xc8]
sub ecx, 0x5a
mov byte [ebp - 0xfd], cl
mov edx, dword [ebp - 0xb8]
add edx, 8
and edx, dword [ebp - 0x10c]
mov byte [ebp - 0x12d], dl
call fcn.00401a80
mov eax, dword [0x42401c]
and eax, 0x5f
mov dword [0x424034], eax
mov ecx, 0x21
sub ecx, dword [0x42402c]
mov edx, dword [0x42402c]
sub edx, dword [0x424020]
and ecx, edx
mov word [ebp - 0x98], cx
movzx eax, word [ebp - 0x1bc]
movzx ecx, byte [ebp - 0x12e]
sub eax, ecx
movzx edx, word [ebp - 0xbc]
lea eax, [edx + eax + 0x59]
mov word [ebp - 0xbc], ax
movzx ecx, byte [ebp - 0x295]
movzx edx, byte [ebp - 0x105]
lea eax, [ecx + edx + 0xc]
movzx ecx, byte [ebp - 0x12d]
add ecx, dword [ebp - 0x288]
and eax, ecx
mov byte [ebp - 0xd9], al
mov edx, dword [ebp - 8]
sub edx, 0x22
mov dword [ebp - 0xb4], edx
movzx eax, word [ebp - 0x98]
sub eax, 0x60
sub eax, dword [ebp - 0x110]
mov dword [ebp - 0x1e4], eax
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0x44], ecx
movzx edx, byte [ebp - 0xd9]
sub edx, 3
mov dword [ebp - 0xf0], edx
movzx eax, byte [ebp - 0xb]
mov ecx, 0x19
sub ecx, eax
sub ecx, dword [ebp - 0xa0]
add ecx, 0x10
mov word [ebp - 0xf8], cx
mov edx, dword [ebp - 0xe0]
sub edx, dword [ebp - 0x29c]
and edx, 0xffffffe6
mov word [ebp - 0x18], dx
mov eax, dword [ebp - 0xa8]
sub eax, 0x4e
mov dword [ebp - 8], eax
mov ecx, 0x48
sub ecx, dword [0x424030]
add ecx, 0x35
mov dword [ebp - 0x140], ecx
movzx edx, word [ebp - 0x284]
mov eax, dword [0x424024]
lea ecx, [eax + edx + 4]
sub ecx, dword [0x42402c]
mov byte [ebp - 0x1d9], cl
mov edx, dword [0x424020]
add edx, dword [0x42402c]
add edx, dword [0x424028]
movzx eax, byte [ebp - 0x1d]
sub edx, eax
movzx ecx, byte [ebp - 0x12d]
sub edx, ecx
mov byte [ebp - 0xa], dl
movzx edx, word [ebp - 0xfc]
mov dword [0x424028], edx
xor eax, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10