Function at 0x405680
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28c
push ebx
push esi
movzx eax, byte [ebp - 0xf9]
mov ecx, 0x24
sub ecx, eax
mov dword [ebp - 0x128], ecx
movzx edx, word [ebp - 0xe8]
add edx, 7
mov word [ebp - 0xe8], dx
mov eax, dword [ebp - 0x25c]
sub eax, 0x31
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], 0
mov ecx, 0x54
sub ecx, dword [0x41102c]
mov dword [0x411028], ecx
movzx edx, word [ebp - 0x1dc]
mov dword [0x411030], edx
movzx eax, byte [ebp - 0x115]
mov ecx, dword [0x411028]
lea esi, [eax + ecx + 0x2a]
mov edx, dword [0x41102c]
push edx
mov eax, dword [0x411028]
push eax
mov ecx, dword [0x411028]
push ecx
call fcn.00404d90
add esi, dword [ebp - 0x1c8]
add eax, esi
mov byte [ebp - 0xd1], al
mov dword [ebp - 0x268], 0x1c
mov edx, 0x24
sub edx, dword [ebp - 0xb0]
sub edx, 0x46
mov word [ebp - 0x1dc], dx
mov eax, dword [0x41101c]
mov dword [ebp - 0x22c], eax
mov dword [0x411030], 0x15
movzx ecx, word [ebp - 0xec]
sub ecx, dword [0x411028]
mov edx, dword [0x41101c]
lea eax, [ecx + edx - 0x36]
or eax, 0x2d
mov byte [ebp - 0x99], al
movzx ecx, word [ebp - 0xe8]
xor ecx, 0x32
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0x18]
sub edx, 0x27
movzx eax, byte [ebp - 0x12e]
sub edx, eax
mov byte [ebp - 0xed], dl
mov dword [ebp - 0xb0], 0x31
mov byte [ebp - 0xd1], 0x33
movzx ecx, byte [ebp - 0x22]
sub ecx, dword [ebp - 0x26c]
sub ecx, dword [ebp - 0x11c]
sub ecx, 0x3a
mov word [ebp - 0xec], cx
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x26c], 0x13
movzx edx, word [ebp - 0xe8]
mov eax, dword [0x411038]
sub eax, edx
mov dword [0x411038], eax
movzx ecx, word [ebp - 0x110]
movzx edx, word [ebp - 0x110]
lea eax, [ecx + edx - 0x46]
sub eax, dword [ebp - 0x26c]
mov word [ebp - 0xe4], ax
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x26c]
lea eax, [edx + ecx + 0x79]
mov word [ebp - 0xe8], ax
movzx ecx, byte [ebp - 0xf9]
movzx edx, word [ebp - 0x1a8]
lea eax, [ecx + edx + 0x3f]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0x26c]
add ecx, 0x1a
sub ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0xac], ecx
movzx edx, word [ebp - 0xc8]
movzx eax, word [ebp - 0x250]
sub edx, eax
or edx, dword [0x411044]
mov dword [0x411044], edx
mov ecx, dword [ebp - 0x22c]
mov dword [ebp - 0x11c], ecx
mov edx, 0x48
sub edx, dword [ebp - 0xac]
mov dword [ebp - 0x26c], edx
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x74], eax
movzx ecx, byte [ebp - 9]
add ecx, 0xa
sub ecx, dword [ebp - 0x11c]
movzx edx, word [ebp - 0x1c]
add ecx, edx
sub ecx, dword [ebp - 0x26c]
mov byte [ebp - 0x99], cl
movzx eax, word [ebp - 0x260]
movzx ecx, byte [ebp - 0x99]
sub eax, ecx
movzx edx, word [ebp - 0xec]
add eax, edx
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x168], 0x40
mov eax, dword [ebp - 0x1ac]
add eax, 0x1e
xor eax, dword [ebp - 0xb0]
xor eax, dword [ebp - 0x1ac]
mov word [ebp - 0xe4], ax
movzx ecx, word [ebp - 0x264]
add ecx, 0x2b
xor ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x26c]
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xb0], 0x3b
movzx eax, word [ebp - 0x12c]
add eax, dword [ebp - 0x268]
mov dword [ebp - 0x26c], eax
movzx ecx, word [ebp - 0x98]
movzx edx, byte [ebp - 0x115]
sub ecx, edx
add ecx, 7
movzx eax, byte [ebp - 0x1b9]
movzx edx, word [ebp - 0x1a8]
sub eax, edx
xor ecx, eax
mov byte [ebp - 0x1b9], cl
mov ax, word [0x411030]
mov word [0x411030], ax
mov dword [ebp - 0xa8], 0x255
mov ecx, dword [0x411020]
add ecx, 0x50
and ecx, 0x38
mov byte [ebp - 0x275], cl
mov edx, dword [0x41101c]
mov dword [0x41101c], edx
mov byte [0x41102c], 0x62
mov dword [ebp - 0x190], 0xc
mov dword [ebp - 0x10], 0x4da1
mov eax, dword [ebp - 0x258]
add eax, 0x58
movzx ecx, byte [ebp - 0x21]
sub eax, ecx
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xa4], 0
mov edx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x268]
lea ecx, [eax + edx + 0x31]
mov dword [ebp - 0x25c], ecx
mov edx, dword [ebp - 0x26c]
add edx, 0x5b
sub edx, dword [ebp - 0x18]
mov dword [ebp - 0x18], edx
movzx eax, word [ebp - 0xec]
mov ecx, 0x57
sub ecx, eax
and ecx, dword [0x41102c]
movzx edx, word [ebp - 0x110]
sub edx, ecx
mov word [ebp - 0x110], dx
mov dword [0x411020], 0x58
movzx eax, word [ebp - 0xe4]
mov ecx, dword [0x411040]
lea edx, [ecx + eax - 0x2a]
mov dword [0x411040], edx
mov eax, dword [0x411020]
mov dword [ebp - 0x208], eax
mov ecx, dword [0x411030]
mov dword [0x411030], ecx
mov edx, dword [0x411018]
push edx
mov eax, dword [0x411004]
push eax
call fcn.00404960
mov dword [ebp - 0xf4], eax
mov ecx, dword [0x411028]
mov edx, dword [0x41101c]
lea eax, [edx + ecx + 3]
mov dword [ebp - 0xbc], eax
mov ecx, dword [0x411024]
add ecx, 0xb
sub ecx, dword [0x41101c]
mov word [ebp - 0xec], cx
mov edx, dword [0x41102c]
mov dword [ebp - 0x1f0], edx
mov eax, dword [0x411030]
add eax, 0xe
sub eax, dword [0x411028]
mov word [ebp - 0x264], ax
mov ecx, 0x10
sub ecx, dword [0x411028]
add ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x18], ecx
mov edx, 0x32
sub edx, dword [0x411028]
add edx, dword [ebp - 0x18]
mov dword [ebp - 0xe0], edx
mov eax, dword [0x41102c]
mov dword [ebp - 0x38], eax
mov ecx, dword [0x411024]
mov dword [0x41101c], ecx
movzx edx, word [ebp - 0x19c]
mov eax, dword [ebp - 0x268]
lea ecx, [eax + edx + 0x27]
movzx edx, word [ebp - 0x1c]
sub edx, ecx
mov word [ebp - 0x1c], dx
lea eax, [ebp - 0x268]
sub eax, 0x39
movzx ecx, word [eax]
mov dword [ebp - 0x26c], ecx
movzx edx, word [ebp - 0x260]
mov eax, dword [ebp - 0x1ac]
sub eax, edx
or eax, 0x4f
mov word [ebp - 0x20], ax
movzx ecx, word [ebp - 0x24c]
add ecx, 0x55
movzx edx, byte [ebp - 0x22]
sub edx, ecx
mov byte [ebp - 0x22], dl
movzx eax, byte [ebp - 0xed]
add eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0xb0]
lea edx, [eax + ecx - 0x16]
mov byte [ebp - 0x275], dl
mov dword [ebp - 0x270], 0
mov eax, dword [0x411020]
sub eax, 0x51
sub eax, dword [0x411024]
add eax, 0x39
movzx ecx, word [ebp - 0x1b8]
sub eax, ecx
mov byte [ebp - 0xd1], al
mov dword [ebp - 0xac], 0xfffffffd
movzx edx, word [ebp - 0x260]
mov dword [ebp - 0x1ac], edx
movzx eax, word [ebp - 0x1b8]
add eax, 0x58
mov ecx, dword [ebp - 0x11c]
add ecx, 0x2f
and eax, ecx
mov byte [ebp - 0x12e], al
mov edx, dword [ebp - 0xb0]
push edx
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0xb0]
push ecx
mov edx, dword [ebp - 0xb0]
push edx
call fcn.00402b00
add eax, dword [ebp - 0x11c]
or eax, 0x42
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x268]
mov ecx, dword [ebp - 0x11c]
lea ebx, [ecx + eax + 0x12]
mov edx, dword [ebp - 0x11c]
push edx
push 0x35
call dword [0x40e01c]
sub ebx, eax
mov byte [ebp - 0x1b9], bl
movzx eax, byte [ebp - 0xd1]
mov ecx, 0x23
sub ecx, eax
sub ecx, dword [ebp - 0x26c]
sub ecx, dword [ebp - 0x11c]
sub ecx, 0x42
mov byte [ebp - 0xd1], cl
mov edx, dword [ebp - 0x11c]
sub edx, dword [ebp - 0x128]
sub edx, dword [ebp - 0x1ac]
add edx, 0x24
or edx, dword [ebp - 0x1ac]
mov byte [ebp - 0xf9], dl
movzx eax, byte [ebp - 0x268]
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x26c], ecx
movzx edx, word [ebp - 0x20]
mov dword [ebp - 0x1ac], edx
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x100], 0x27c
mov ecx, dword [ebp - 0xb0]
sub ecx, 0xe
mov word [ebp - 0x1a8], cx
movzx edx, word [ebp - 0x108]
and edx, 0x35
mov word [ebp - 0x108], dx
movzx eax, byte [ebp - 0xd1]
add eax, 0x33
sub eax, dword [ebp - 0x1ac]
sub eax, 0x30
movzx ecx, byte [ebp - 9]
or eax, ecx
mov byte [ebp - 0x1c9], al
mov dword [ebp - 0x11c], 0x54
mov dword [ebp - 0x26c], 1
movzx edx, word [ebp - 0x108]
add edx, 2
mov word [ebp - 0xb4], dx
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x38], eax
movzx ecx, word [ebp - 0x20]
mov edx, dword [ebp - 0x1ac]
add edx, dword [ebp - 0x18]
and ecx, edx
mov dword [ebp - 0x1b4], ecx
mov dword [ebp - 0x5c], 0x1d
mov dword [ebp - 0x26c], 0x38
mov dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x268], eax
mov ecx, dword [ebp - 0x26c]
sub ecx, 0x4a
sub ecx, dword [ebp - 0x1ac]
movzx edx, word [ebp - 0xe8]
sub ecx, edx
mov word [ebp - 0x114], cx
mov dword [ebp - 0x1d0], 0
mov byte [0x41101c], 0x11
mov dword [ebp - 0x23c], 0x12
movzx eax, word [ebp - 0x1b8]
movzx ecx, word [ebp - 0x114]
xor eax, ecx
movzx edx, word [ebp - 0xec]
mov ecx, 0x56
sub ecx, edx
xor ecx, dword [0x411020]
or eax, ecx
mov byte [ebp - 9], al
mov edx, 0x10
sub edx, dword [0x411030]
add edx, 0x3d
mov dword [ebp - 0xcc], edx
mov eax, dword [0x411020]
push eax
call fcn.00402010
add eax, 0x58
mov dword [0x41102c], eax
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x26c]
lea eax, [edx + ecx + 0x2e]
sub eax, dword [ebp - 0x26c]
mov word [ebp - 0x1c], ax
movzx ecx, word [ebp - 0x1dc]
add ecx, 0x46
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0x25c], 0xffffffec
mov dword [ebp - 0x74], 0x53
movzx edx, word [ebp - 0x12c]
add edx, dword [ebp - 0x268]
mov eax, dword [ebp - 0xb0]
add eax, dword [ebp - 0xac]
movzx ecx, byte [ebp - 0xf9]
add eax, ecx
and edx, eax
mov byte [ebp - 0x275], dl
mov edx, dword [ebp - 0x268]
mov dword [ebp - 0x288], edx
cmp dword [ebp - 0x288], 3
ja case.default.0x405e45
mov eax, dword [ebp - 0x288]
jmp dword [eax*4 + 0x406eac]
movzx ecx, byte [ebp - 0x21]
movzx edx, word [ebp - 0x24c]
movzx eax, byte [ebp - 0xd1]
xor edx, eax
or ecx, edx
movzx edx, byte [ebp - 0x1b9]
sub edx, ecx
mov byte [ebp - 0x1b9], dl
movzx eax, word [ebp - 0xd8]
or eax, dword [ebp - 0x26c]
add eax, dword [0x411050]
mov dword [0x411050], eax
jmp 0x406008
movzx ecx, byte [ebp - 0xd1]
add ecx, 3
mov byte [ebp - 0xd1], cl
movzx edx, word [ebp - 0x24c]
add edx, 0x69
mov byte [ebp - 0x115], dl
movzx eax, byte [ebp - 0x1c9]
cmp eax, dword [ebp - 0x94]
jae 0x405ef5
mov ecx, dword [ebp - 0x128]
mov edx, dword [ebp - 0x268]
lea eax, [edx + ecx - 0x5b]
sub eax, dword [ebp - 0x26c]
mov byte [ebp - 0xa], al
mov ecx, dword [ebp - 0xf8]
sub ecx, dword [ebp - 0x11c]
xor ecx, dword [ebp - 0x274]
or ecx, dword [ebp - 0x268]
mov word [ebp - 0x1a8], cx
jmp 0x406008
movzx edx, word [ebp - 0x110]
movzx eax, word [ebp - 0x108]
sub eax, edx
mov word [ebp - 0x108], ax
mov ecx, 1
test ecx, ecx
je 0x405f3e
mov edx, dword [ebp - 0x26c]
add edx, 0x59
xor edx, 0x40
mov word [ebp - 0x264], dx
mov eax, dword [ebp - 0x11c]
sub eax, 0x2b
mov dword [ebp - 0xbc], eax
jmp 0x405f54
mov ecx, dword [ebp - 0x11c]
sub ecx, 4
xor ecx, dword [ebp - 0x268]
mov word [ebp - 0xc0], cx
cmp dword [0x41100c], 0x1a
jge 0x405f7f
movzx edx, word [ebp - 0x1a8]
add edx, 0x41
movzx eax, word [ebp - 0xec]
sub edx, eax
movzx ecx, byte [ebp - 0xb]
add edx, ecx
and edx, dword [ebp - 0xb0]
mov byte [ebp - 0xb], dl
cmp dword [section..data], 0x43
jle 0x405fba
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x268]
push eax
mov ecx, dword [ebp - 0x26c]
push ecx
call fcn.00401910
sub eax, 0x6c
or eax, 7
mov byte [ebp - 0x12e], al
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0x268], edx
jmp 0x406008
movzx eax, byte [ebp - 0x1c9]
mov ecx, dword [ebp - 0x268]
lea edx, [eax + ecx - 5]
movzx eax, byte [ebp - 0x22]
or edx, eax
mov word [ebp - 0x114], dx
mov ecx, 0x67
mov word [ebp - 0xdc], cx
movzx edx, word [ebp - 0xec]
movzx eax, byte [ebp - 0xa]
add edx, eax
mov dword [ebp - 0x11c], edx
jmp 0x406008
movzx ecx, byte [ebp - 9]
or ecx, 0x46
mov dword [ebp - 0x268], ecx
mov edx, dword [ebp - 0x26c]
sub edx, 0x15
mov dword [ebp - 0x26c], edx
mov eax, dword [ebp - 0x26c]
cmp eax, dword [0x411004]
jg 0x40606b
mov ecx, dword [ebp - 0x268]
push ecx
mov edx, dword [ebp - 0x268]
push edx
mov eax, dword [ebp - 0x268]
push eax
mov ecx, dword [ebp - 0x26c]
push ecx
call fcn.00404030
movzx edx, word [ebp - 0x98]
add eax, edx
movzx ecx, byte [ebp - 0x115]
sub ecx, 0x58
xor eax, ecx
mov word [ebp - 0x264], ax
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x268], edx
mov dword [ebp - 0x94], 0x16
mov dword [ebp - 0x178], 0x5a
push 0xf
call dword [0x40e250]
add eax, 0x26
mov dword [ebp - 0x268], eax
movzx eax, byte [ebp - 0x12e]
mov ecx, dword [ebp - 0x26c]
lea edx, [ecx + eax - 0x24]
mov word [ebp - 0x264], dx
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x1ac]
lea edx, [ecx + eax + 0x56]
mov byte [ebp - 0x1c9], dl
movzx eax, word [ebp - 0x110]
mov ecx, 0x44
sub ecx, eax
add ecx, dword [0x411040]
mov dword [0x411040], ecx
mov edx, dword [ebp - 0x26c]
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0x220], 0x3f
movzx ebx, word [ebp - 0x1dc]
add ebx, dword [ebp - 0x268]
movzx eax, byte [ebp - 0x99]
add ebx, eax
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x268]
push edx
call fcn.00401500
sub ebx, eax
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x26c]
push ecx
call fcn.00403590
and ebx, eax
mov byte [ebp - 0x1b9], bl
mov edx, dword [ebp - 0x1c8]
mov dword [0x411024], edx
mov eax, dword [0x41102c]
sub eax, dword [0x411020]
add eax, 0x22
mov dword [ebp - 0xac], eax
movzx ecx, byte [ebp - 0xb]
mov edx, dword [0x411024]
lea eax, [edx + ecx + 0x19]
mov word [ebp - 0x264], ax
movzx ecx, byte [ebp - 0x275]
add ecx, dword [0x411020]
movzx edx, word [ebp - 0xd0]
sub ecx, edx
mov dword [ebp - 0x1c8], ecx
movzx eax, word [ebp - 0xdc]
add eax, dword [0x411048]
mov dword [0x411048], eax
movzx ecx, byte [0x411050]
mov dword [0x411020], ecx
mov dword [ebp - 0x18c], 0x62
movzx edx, word [ebp - 0x20]
mov eax, dword [ebp - 0x1ac]
lea ecx, [edx + eax - 0x11]
mov word [ebp - 0x20], cx
mov edx, 0x5d
sub edx, dword [ebp - 0x1ac]
add edx, 0x25
sub edx, dword [ebp - 0xb0]
mov word [ebp - 0x1a8], dx
movzx eax, word [ebp - 0xc8]
add eax, 0x79
movzx ecx, word [ebp - 0x19c]
sub ecx, eax
mov word [ebp - 0x19c], cx
mov dword [ebp - 0x23c], 0x5e
mov edx, dword [ebp - 0x11c]
add edx, dword [ebp - 0xb0]
or edx, 0x1f
mov dword [ebp - 0x258], edx
movzx eax, word [ebp - 0xec]
and eax, dword [ebp - 0xf8]
or eax, dword [0x411018]
mov ecx, dword [0x416d60]
add ecx, dword [ebp - 0xa4]
movsx edx, byte [ecx]
add edx, eax
mov eax, dword [0x416d60]
add eax, dword [ebp - 0xa4]
mov byte [eax], dl
mov dword [ebp - 0x1e8], 0x27
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x1ac]
lea eax, [edx + ecx + 0x39]
add eax, dword [ebp - 0x274]
mov word [ebp - 0xd0], ax
mov ecx, 0x27
mov word [ebp - 0x260], cx
mov dword [0x41102c], 0x49
mov edx, dword [0x41102c]
sub edx, 0x3f
xor edx, 0x5a
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x224], 0x1a
movzx eax, byte [ebp - 0x12d]
add eax, 0x11
mov ecx, dword [0x41101c]
add ecx, 0x28
xor eax, ecx
xor eax, 0x1f
mov byte [ebp - 0xb], al
mov edx, dword [ebp - 0xa4]
add edx, 1
mov dword [ebp - 0x1d0], edx
mov dword [ebp - 0x1c8], 0x76
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x268], 0x2f
mov ecx, dword [ebp - 0x268]
mov dword [ebp - 0xb0], ecx
mov edx, 0x35
sub edx, dword [0x411024]
movzx eax, word [ebp - 0x1a8]
sub edx, eax
add edx, 0x4c
movzx ecx, byte [ebp - 0x12e]
sub edx, ecx
mov byte [ebp - 0x12d], dl
mov edx, dword [0x41101c]
cmp edx, dword [0x411030]
jl 0x406356
mov eax, 0x21
sub eax, dword [ebp - 0x18]
movzx ecx, word [ebp - 0x110]
sub eax, ecx
mov dword [ebp - 0xe0], eax
mov edx, dword [0x41102c]
sub edx, dword [0x411030]
and edx, dword [0x411028]
mov dword [ebp - 0x274], edx
jmp 0x40639d
mov eax, dword [0x411030]
sub eax, dword [ebp - 0x10c]
movzx ecx, word [ebp - 0x12c]
sub eax, ecx
sub eax, 0x1a
and eax, dword [0x41102c]
mov byte [ebp - 0x116], al
mov edx, dword [0x41101c]
add edx, dword [0x41102c]
movzx eax, word [ebp - 0x20]
sub edx, eax
movzx ecx, byte [ebp - 0xb]
add ecx, dword [0x411024]
and edx, ecx
mov byte [ebp - 0x116], dl
movzx edx, word [ebp - 0xc0]
and edx, dword [0x411020]
mov dword [0x411028], edx
movzx eax, word [ebp - 0x260]
add eax, 0x59
movzx ecx, word [ebp - 0x1b8]
sub eax, ecx
mov word [ebp - 0x124], ax
mov edx, 0x64
sub edx, dword [ebp - 0x26c]
mov dword [ebp - 0x268], edx
movzx eax, word [ebp - 0xb4]
mov dword [0x411040], eax
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x20c], ecx
mov byte [ebp - 0x27d], 0x16
mov dword [ebp - 0x26c], 0x5c
mov dword [ebp - 0x1ac], 0x6b
movzx edx, byte [ebp - 0x275]
movzx eax, byte [ebp - 0xa]
sub eax, edx
mov byte [ebp - 0xa], al
movzx ecx, word [ebp - 0x104]
mov dword [ebp - 0x1ac], ecx
mov dword [ebp - 0x268], 0x44
mov edx, dword [ebp - 0x268]
add edx, 0x4d
or edx, 0x50
mov dword [ebp - 0x274], edx
movzx eax, byte [ebp - 0x275]
movzx ecx, byte [ebp - 0x22]
add eax, ecx
sub eax, dword [ebp - 0x94]
mov dword [ebp - 0x25c], eax
call fcn.00402ec0
mov dword [ebp - 0x1c0], eax
movzx edx, byte [ebp - 0x1c9]
mov eax, 0x8f
sub eax, edx
mov ecx, dword [ebp - 0x258]
lea edx, [eax + ecx + 0x3f]
mov byte [ebp - 0x1b9], dl
mov eax, dword [ebp - 0xb0]
add eax, 0x19
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0xb0], 0x1e
movzx ecx, byte [ebp - 0xed]
mov edx, 0xd
sub edx, ecx
and edx, 0x3e
or edx, 0x3e
mov byte [ebp - 0x1c9], dl
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x1ac], eax
movsx ecx, byte [ebp - 0x11d]
sub ecx, dword [ebp - 0x274]
movzx edx, byte [ebp - 0x115]
or ecx, edx
mov eax, dword [0x416d60]
add eax, dword [ebp - 0xa4]
movsx edx, byte [eax]
imul edx, ecx
mov eax, dword [0x416d60]
add eax, dword [ebp - 0xa4]
mov byte [eax], dl
mov ecx, dword [ebp - 0x26c]
add ecx, 0x13
mov byte [ebp - 0x12d], cl
mov edx, dword [ebp - 0x25c]
and edx, 0x19
mov dword [ebp - 0xb0], edx
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x268], eax
mov ecx, dword [ebp - 0xb0]
add ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xb8]
lea eax, [ecx + edx - 0x2c]
mov byte [ebp - 0x116], al
mov dword [ebp - 0x18], 0x38
mov ecx, dword [ebp - 0x26c]
add ecx, 0x26
xor ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x1d0]
xor edx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1d0]
imul eax, dword [ebp - 0x1c0]
xor edx, eax
mov dword [ebp - 0x1d8], edx
mov dword [0x411028], 0x11
movzx ecx, byte [ebp - 0x12d]
mov dword [0x411020], ecx
mov edx, dword [0x411044]
sub edx, dword [ebp - 0x26c]
mov dword [0x411044], edx
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x11c], eax
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x220], ecx
mov edx, 2
mov word [ebp - 0x24c], dx
mov eax, 0x5d
sub eax, dword [ebp - 0x1ac]
and eax, 0x6d
mov word [ebp - 0x12c], ax
mov ecx, dword [0x411024]
mov edx, dword [0x41102c]
lea eax, [edx + ecx - 0x1b]
mov dword [ebp - 0x1b4], eax
movzx ecx, byte [ebp - 0xb]
add ecx, 5
mov byte [ebp - 0xb], cl
mov byte [0x411028], 0x23
mov edx, dword [0x411024]
mov dword [0x411028], edx
mov eax, dword [0x411020]
mov ecx, dword [0x411030]
lea edx, [ecx + eax + 0x53]
add edx, dword [0x411028]
mov word [ebp - 0xe8], dx
mov eax, dword [0x41101c]
sub eax, 0x2e
mov dword [0x41101c], eax
mov dword [ebp - 0x23c], 0x30
movzx ecx, byte [ebp - 0xf9]
mov edx, dword [ebp - 0xb8]
lea eax, [ecx + edx + 0x53]
mov ecx, dword [0x41102c]
add ecx, dword [0x41102c]
and eax, ecx
mov byte [ebp - 0x12d], al
mov edx, dword [ebp - 0x1ac]
mov dword [ebp - 0x144], edx
mov eax, dword [ebp - 0xcc]
sub eax, dword [ebp - 0xe0]
mov dword [ebp - 0x26c], eax
mov ecx, dword [0x411058]
or ecx, 0x47
mov dword [0x411058], ecx
mov dl, byte [ebp - 0xb0]
mov byte [ebp - 0x26c], dl
mov dword [ebp - 0x1ac], 0x22
mov eax, dword [ebp - 0x1ac]
sub eax, 0x2b
movzx ecx, word [ebp - 0xe4]
sub eax, ecx
sub eax, 0x44
mov word [ebp - 0x1b8], ax
mov dword [ebp - 0x26c], 0xffffffdc
mov dword [ebp - 0x11c], 1
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0xb0], edx
movsx eax, byte [ebp - 0x11d]
sub eax, dword [0x411004]
movzx ecx, word [ebp - 0xec]
add eax, ecx
mov edx, dword [0x416d60]
add edx, dword [ebp - 0xa4]
movsx ecx, byte [edx]
and ecx, eax
mov edx, dword [0x416d60]
add edx, dword [ebp - 0xa4]
mov byte [edx], cl
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x14c], eax
movzx ecx, word [ebp - 0x264]
xor ecx, dword [ebp - 0x274]
mov dword [ebp - 0x268], ecx
movzx edx, byte [ebp - 0xf9]
mov eax, 4
sub eax, edx
sub eax, 0x4d
mov byte [ebp - 0xa], al
mov ecx, dword [ebp - 0x268]
mov dword [ebp - 0x1ac], ecx
mov edx, 0x51bb
mov word [ebp - 0x27c], dx
movzx eax, word [ebp - 0xd0]
movzx ecx, byte [ebp - 0xb]
sub eax, ecx
and eax, 0x1f
or eax, dword [ebp - 0x11c]
or eax, dword [ebp - 0x268]
mov byte [ebp - 0x275], al
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0x28c], edx
cmp dword [ebp - 0x28c], 3
ja case.default.0x4067ac
mov eax, dword [ebp - 0x28c]
jmp dword [eax*4 + 0x406ebc]
movzx ecx, word [ebp - 0x260]
mov edx, 0x16
sub edx, ecx
and edx, dword [0x411054]
mov dword [0x411054], edx
cmp dword [0x41100c], 0x51
jl 0x4067f8
mov eax, dword [ebp - 0x1ac]
add eax, 0x1d
mov dword [ebp - 0x1ac], eax
movzx ecx, word [ebp - 0x260]
xor ecx, dword [ebp - 0x268]
mov dword [ebp - 0x268], ecx
jmp 0x4068ce
movzx edx, word [ebp - 0x114]
movzx eax, word [ebp - 0x1a8]
sub edx, eax
movzx ecx, word [ebp - 0xe4]
add edx, ecx
mov word [ebp - 0x12c], dx
jmp 0x4068ce
movzx edx, word [ebp - 0xdc]
add edx, 0x44
movzx eax, byte [ebp - 0x99]
sub edx, eax
movzx ecx, word [ebp - 0x14]
imul ecx, edx
mov word [ebp - 0x14], cx
movzx edx, byte [ebp - 0x116]
mov eax, 0x44
sub eax, edx
movzx ecx, word [ebp - 0xdc]
or eax, ecx
movzx edx, byte [ebp - 0xd1]
sub edx, eax
mov byte [ebp - 0xd1], dl
jmp 0x4068ce
mov eax, dword [ebp - 0xb0]
push eax
mov ecx, dword [ebp - 0x268]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x268]
push eax
mov ecx, dword [ebp - 0x1ac]
push ecx
mov edx, dword [ebp - 0x268]
push edx
call fcn.00404610
sub eax, 0x15
mov dword [ebp - 0x26c], eax
mov al, byte [ebp - 9]
mov byte [ebp - 0x275], al
jmp 0x4068ce
push 0x1d
mov ecx, dword [ebp - 0xb0]
push ecx
call dword [0x40e254]
mov edx, dword [ebp - 0xb0]
add edx, 0x79
and edx, 8
xor eax, edx
mov byte [ebp - 0x99], al
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax*4 + 0x411080]
sub ecx, dword [ebp - 0x1d8]
mov edx, dword [0x416d60]
add edx, dword [ebp - 0xa4]
mov byte [edx], cl
mov eax, dword [ebp - 0x268]
add eax, 0xc
mov dword [ebp - 8], eax
mov byte [ebp - 0x268], 5
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0x68], ecx
mov edx, 0x3d6b
mov word [ebp - 0x284], dx
movzx eax, word [ebp - 0x1b8]
and eax, 0x59
mov ecx, dword [ebp - 0x268]
add ecx, 0x38
movzx edx, word [ebp - 0xc0]
sub ecx, edx
and eax, ecx
mov byte [ebp - 0xf9], al
movzx eax, word [ebp - 0x12c]
add eax, 0x64
mov word [ebp - 0x12c], ax
movzx ecx, byte [ebp - 0x21]
mov edx, dword [ebp - 0x1ac]
lea eax, [ecx + edx - 0xb]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xa4]
add ecx, 1
mov dword [ebp - 0xa4], ecx
movzx edx, byte [ebp - 0xa]
mov eax, dword [ebp - 0x11c]
lea ecx, [edx + eax + 0x22]
mov dword [ebp - 0xe0], ecx
mov edx, 0x70
sub edx, dword [ebp - 0x25c]
movzx eax, byte [ebp - 0xf9]
sub edx, eax
mov word [ebp - 0x1c], dx
mov ecx, 0x19
sub ecx, dword [ebp - 0x26c]
mov dword [ebp - 0xb0], ecx
movzx edx, byte [ebp - 0x22]
mov eax, dword [ebp - 0x1ac]
sub eax, edx
sub eax, 0x4d
and eax, dword [ebp - 0x25c]
mov word [ebp - 0x1dc], ax
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x30], ecx
movzx edx, word [ebp - 0xe4]
add edx, 0x4d
mov dword [ebp - 0x268], edx
mov eax, dword [ebp - 0x25c]
mov ecx, dword [0x41102c]
lea edx, [ecx + eax + 0x59]
and edx, dword [0x411024]
mov word [ebp - 0x114], dx
movzx eax, byte [ebp - 0x21]
add eax, dword [0x411030]
movzx ecx, byte [ebp - 0x1b9]
lea edx, [ecx + eax + 0x2d]
mov byte [ebp - 0x1b9], dl
mov eax, dword [0x411020]
add eax, dword [0x411020]
mov dword [0x411030], eax
mov ecx, dword [ebp - 0xa4]
cmp ecx, dword [0x411078]
jne 0x406134
mov edx, dword [ebp - 0xb0]
add edx, dword [ebp - 0x26c]
mov dword [ebp - 0xb0], edx
mov eax, dword [ebp - 0xf7]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0x11c]
mov dword [ebp - 0x228], ecx
mov edx, dword [ebp - 0x1ac]
push edx
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x268]
push ecx
call fcn.00404d90
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0xb0]
add edx, 0x25
movzx eax, word [ebp - 0x260]
sub edx, eax
movzx ecx, byte [ebp - 0x21]
lea edx, [edx + ecx - 0x2d]
mov byte [ebp - 0x116], dl
mov dword [ebp - 0xb0], 0xffffffff
movzx eax, byte [ebp - 0x22]
sub eax, 0x3a
and eax, 0x48
xor eax, dword [0x411024]
mov byte [ebp - 0x12d], al
movzx ecx, byte [ebp - 0xf9]
add ecx, 0x25
or ecx, dword [0x411024]
mov dword [ebp - 0x258], ecx
mov edx, dword [ebp - 0x268]
sub edx, 0x26
mov dword [ebp - 0x268], edx
movzx eax, byte [ebp - 0x12d]
add eax, dword [ebp - 0xb0]
movzx ecx, word [ebp - 0x110]
add eax, ecx
movzx edx, word [ebp - 0xec]
add edx, 0x14
and eax, edx
mov byte [ebp - 0xa], al
movzx eax, word [ebp - 0x264]
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x194], 0x55
mov dword [ebp - 0x1e0], 0x2e6
mov ecx, dword [ebp + 8]
mov dword [0x416d64], ecx
movzx edx, byte [ebp - 0x99]
add edx, dword [ebp - 0x1b4]
or edx, 0x2f
mov dword [ebp - 0xcc], edx
xor eax, eax
je 0x406b80
mov ecx, dword [ebp - 0x1c8]
sub ecx, 0x4c
mov word [ebp - 0xc0], cx
movzx edx, byte [ebp - 0x115]
add edx, dword [0x41101c]
movzx eax, word [ebp - 0xe8]
and edx, eax
and edx, dword [0x41101c]
mov word [ebp - 0x1c], dx
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x26c], ecx
mov edx, dword [ebp - 0x268]
mov dword [ebp - 0x234], edx
mov dword [ebp - 0xa0], 0x17e
mov eax, dword [ebp - 0x1ac]
add eax, 0x2c
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xb0]
add ecx, dword [ebp - 0xcc]
or ecx, dword [ebp - 0x268]
mov dword [ebp - 0xcc], ecx
movzx edx, byte [ebp - 0xf9]
mov eax, dword [ebp - 0x268]
sub eax, edx
mov ecx, dword [ebp - 0xac]
lea edx, [eax + ecx + 0x1b]
mov word [ebp - 0xc0], dx
movzx eax, word [ebp - 0xc0]
movzx ecx, byte [ebp - 0x1b9]
sub eax, ecx
mov edx, dword [ebp - 0xbc]
add edx, 0x44
xor eax, edx
mov word [ebp - 0x98], ax
movzx eax, byte [ebp - 0x21]
mov ecx, dword [ebp - 0xb0]
add ecx, 0xd
and eax, ecx
or eax, 0x32
mov byte [ebp - 0x1c9], al
mov edx, dword [ebp - 0xb0]
add edx, 0x20
sub edx, dword [ebp - 0x11c]
mov dword [ebp - 0xb8], edx
movzx eax, word [ebp - 0xc0]
add eax, 0x71
movzx ecx, byte [ebp - 0xf9]
sub ecx, eax
mov byte [ebp - 0xf9], cl
movzx edx, word [ebp - 0x12c]
movzx eax, word [ebp - 0xe4]
add eax, 5
xor edx, eax
movzx ecx, word [ebp - 0x20]
or edx, ecx
mov word [ebp - 0x12c], dx
mov dword [ebp - 0x268], 0x48
movzx edx, byte [ebp - 0x1c9]
sub edx, 0x57
mov word [ebp - 0x254], dx
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x11c]
sub ecx, 0x14
movzx edx, byte [ebp - 0x22]
and ecx, edx
mov dword [ebp - 0x94], ecx
movzx eax, word [ebp - 0x110]
mov ecx, 0x50
sub ecx, eax
sub ecx, dword [ebp - 0x26c]
sub ecx, dword [ebp - 0x11c]
mov word [ebp - 0x20], cx
mov edx, dword [ebp - 0x128]
sub edx, 0x58
mov byte [ebp - 0xa], dl
mov eax, 0x1a
sub eax, dword [ebp - 0x1ac]
xor eax, 0x4e
mov dword [ebp - 0xcc], eax
call fcn.00401c10
mov esi, dword [ebp - 0xb0]
sub esi, dword [ebp - 0x274]
push 0x2e
call dword [0x40e020]
lea ecx, [esi + eax + 0x2c]
mov word [ebp - 0x1a8], cx
movzx edx, byte [ebp - 0xa]
mov eax, dword [ebp - 0x268]
sub eax, edx
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x268], 0xfffffff3
mov dword [ebp - 0x11c], 0x20
mov ecx, 0x2c
sub ecx, dword [ebp - 0x268]
mov dword [ebp - 0x11c], ecx
mov dword [ebp - 0x148], 0x5e
mov dword [ebp - 0x1ac], 0x76
mov edx, dword [ebp - 0x1ac]
mov dword [ebp - 0x268], edx
mov eax, dword [ebp - 0xb8]
add eax, 0x1e
mov dword [ebp - 0x26c], eax
movzx ecx, word [ebp - 0xd5]
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0x7c], 0x23
mov byte [ebp - 0xc1], 0x69
mov edx, 0xffffffcc
sub edx, dword [ebp - 0x26c]
mov dword [ebp - 0xbc], edx
movzx eax, word [ebp - 0x14]
movzx ecx, word [ebp - 0x124]
sub eax, ecx
movzx edx, word [ebp - 0x20]
xor edx, eax
mov word [ebp - 0x20], dx
mov dword [ebp - 0x78], 0x62
mov eax, dword [0x411024]
push eax
mov ecx, dword [0x411030]
push ecx
call fcn.00401500
mov edx, 0xffffffcf
sub edx, eax
sub edx, dword [0x41102c]
sub edx, dword [0x411024]
mov byte [ebp - 0x115], dl
movzx eax, word [ebp - 0xe4]
add eax, 0x2b
mov word [ebp - 0x260], ax
mov ecx, dword [ebp - 0x1ac]
mov edx, dword [ebp - 0x268]
lea eax, [edx + ecx + 0x64]
add eax, dword [ebp - 0xb0]
movzx ecx, word [ebp - 0x20]
add eax, ecx
mov byte [ebp - 0x21], al
movzx edx, word [ebp - 0x254]
movzx eax, word [ebp - 0x20]
sub eax, edx
mov word [ebp - 0x20], ax
movzx ecx, byte [ebp - 0x1c9]
sub ecx, dword [ebp - 0xb8]
sub ecx, 0x58
mov dword [ebp - 0x94], ecx
mov ebx, dword [ebp - 0xe0]
add ebx, 0x25
mov edx, dword [ebp - 0x26c]
push edx
call dword [0x40e0b4]
sub ebx, eax
mov eax, dword [ebp - 0x94]
add eax, 0x22
and ebx, eax
mov byte [ebp - 0x275], bl
movzx ecx, word [ebp - 0x1a8]
mov edx, 0x19
sub edx, ecx
mov word [ebp - 0x20], dx
movzx eax, byte [ebp - 0x50]
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x168], 5
movzx ecx, byte [ebp - 0x275]
sub ecx, 0x45
mov dword [ebp - 0x1ac], ecx
xor eax, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10