Function at 0x405830
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2ec
mov dword [ebp - 0x128], 0x3cc5
movsx eax, word [0x41a004]
add eax, 0xc3
mov word [0x41a004], ax
mov dword [ebp - 0x110], 0xaa9f
cmp dword [ebp - 0x128], 0xccdc
jne 0x405891
mov ecx, dword [ebp - 0x128]
push ecx
mov edx, dword [ebp - 0x128]
push edx
mov eax, dword [ebp - 0x128]
push eax
mov ecx, dword [ebp - 0x128]
push ecx
push 0xffffffffffffffdd
call fcn.004087f0
add esp, 0x14
mov byte [ebp - 0x1a2], 0x5b
push 0
push 0x80
push 1
push 0
push 2
push 0x40000000
push 0x415f24
call dword [str.uaVj_b]
mov dword [ebp - 0x248], eax
mov edx, 0xa49
mov word [ebp - 0xac], dx
mov byte [ebp - 0x141], 0x67
lea eax, [ebp - 0xac]
mov dword [ebp - 0x1bc], eax
movsx ecx, word [0x41a004]
mov dword [ebp - 0x2b0], ecx
cmp dword [ebp - 0x2b0], 0x95
je 0x40594a
cmp dword [ebp - 0x2b0], 0x4d0
je 0x405904
jmp 0x40598e
call dword [0x415040]
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x98], 0x6702
mov dword [ebp - 0xa0], 0x3f2c
mov dword [ebp - 0x234], 0xd958
mov dl, byte [ebp - 0x1a2]
mov byte [ebp - 0x135], dl
push 0xc
call dword [0x41503c]
mov dword [ebp - 0x1c4], eax
jmp 0x40598e
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0xac]
sub ecx, edx
mov eax, dword [ebp - 0x1bc]
mov word [eax], cx
movzx ecx, byte [ebp - 0x135]
push ecx
movzx edx, byte [ebp - 0x135]
push edx
movzx eax, byte [ebp - 0x1a2]
push eax
mov edx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xa0]
call fcn.00408880
mov cl, byte [ebp - 0x141]
mov byte [ebp - 0x2b4], cl
cmp byte [ebp - 0x2b4], 0x1c
je 0x4059fb
cmp byte [ebp - 0x2b4], 0x37
je 0x4059b1
jmp 0x405a54
movzx edx, byte [ebp - 0x1a2]
and edx, 0x1b
mov byte [ebp - 0x135], dl
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
xor ecx, 0xacf
mov word [ebp - 0xac], cx
mov edx, dword [ebp - 0xa0]
sar edx, 0x1a
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0xa0]
push eax
mov ecx, dword [ebp - 0xa0]
push ecx
call fcn.004057a0
jmp 0x405a54
movzx edx, word [ebp - 0xac]
or edx, 0x4a7
mov eax, dword [ebp - 0x1bc]
mov word [eax], dx
mov ecx, dword [ebp - 0xa0]
shl ecx, 0xf
mov dword [ebp - 0xa0], ecx
movsx edx, word [0x41a004]
sub edx, 0x112
mov word [0x41a004], dx
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0xac]
add ecx, edx
mov eax, dword [ebp - 0x1bc]
mov word [eax], cx
call fcn.00405750
mov cx, word [0x41a004]
mov word [ebp - 0x140], cx
mov edx, dword [ebp - 0xa0]
mov dword [ebp - 0x1c], edx
movzx eax, word [ebp - 0xac]
and eax, 0xd5f
mov ecx, dword [ebp - 0x1bc]
mov word [ecx], ax
mov edx, dword [ebp - 0xa0]
add edx, 0x29e
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x128]
sub eax, 0xd24a
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0xa0]
sub ecx, 0x809
mov dword [ebp - 0x1c], ecx
push 0
push 0x42cb57
mov edx, dword [ebp - 0x248]
push edx
call dword [0x415038]
mov dword [ebp - 0x154], eax
movzx eax, word [ebp - 0xac]
add eax, 0xb17
mov ecx, dword [ebp - 0x1bc]
mov word [ecx], ax
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0xac]
xor eax, ecx
mov edx, dword [ebp - 0x1bc]
mov word [edx], ax
mov eax, dword [ebp - 0x128]
shr eax, 0x13
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0x1c]
or ecx, 0x7c4d
mov dword [ebp - 0xa0], ecx
movsx edx, byte [ebp - 0x141]
shl edx, 5
mov byte [ebp - 0x141], dl
movzx eax, word [ebp - 0xac]
and eax, 0xaf1
mov ecx, dword [ebp - 0x1bc]
mov word [ecx], ax
movzx edx, word [ebp - 0xac]
sub edx, 0x8d2
mov eax, dword [ebp - 0x1bc]
mov word [eax], dx
movzx ecx, byte [ebp - 0x135]
add ecx, 0xec
mov byte [ebp - 0x1a2], cl
mov edx, dword [ebp - 0x128]
add edx, 0x4c55
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0xa0]
sub eax, 0x61c1
mov dword [ebp - 0x1c], eax
movsx ecx, word [ebp - 0x140]
and ecx, 0x633
mov word [0x41a004], cx
mov edx, dword [ebp - 0x128]
sub edx, 0x139b
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0xa0]
add eax, 0x6824
mov dword [ebp - 0x1c], eax
movzx ecx, word [ebp - 0xac]
sub ecx, 0x4f9
mov edx, dword [ebp - 0x1bc]
mov word [edx], cx
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
add ecx, 0x60c
mov word [ebp - 0xac], cx
lea edx, [ebp - 0x298]
push edx
mov eax, dword [ebp - 0x248]
push eax
call dword [0x415034]
mov dword [ebp - 0x264], eax
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx ecx, word [ebp - 0xac]
sar edx, cl
mov eax, dword [ebp - 0x1bc]
mov word [eax], dx
mov ecx, dword [ebp - 0x128]
xor ecx, 0xdd4d
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0xac]
shl eax, cl
mov ecx, dword [ebp - 0x1bc]
mov word [ecx], ax
mov edx, dword [ebp - 0xa0]
or edx, 0x6979
mov dword [ebp - 0x1c], edx
movsx eax, word [ebp - 0x140]
and eax, 0x3be
mov word [0x41a004], ax
movzx ecx, word [ebp - 0xac]
sub ecx, 0xb3b
mov edx, dword [ebp - 0x1bc]
mov word [edx], cx
mov eax, dword [ebp - 0x234]
sub eax, 0xf0
mov dword [ebp - 0x234], eax
movsx ecx, word [0x41a004]
add ecx, 0x654
mov word [ebp - 0x140], cx
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0xac]
add eax, ecx
mov edx, dword [ebp - 0x1bc]
mov word [edx], ax
mov eax, dword [ebp - 0x128]
sub eax, 0x973c
mov dword [ebp - 0x128], eax
movzx ecx, word [ebp - 0xac]
add ecx, 0x99b
mov edx, dword [ebp - 0x1bc]
mov word [edx], cx
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
and ecx, 0x527
mov word [ebp - 0xac], cx
movzx edx, byte [ebp - 0x1a2]
sub edx, 0x7d
mov byte [ebp - 0x135], dl
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0xac]
sub ecx, edx
mov eax, dword [ebp - 0x1bc]
mov word [eax], cx
movsx ecx, word [ebp - 0x140]
add ecx, 0x20a
mov word [0x41a004], cx
mov edx, dword [ebp - 0x1c]
shl edx, 5
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0x1bc]
movzx edx, word [eax]
movzx ecx, word [ebp - 0xac]
sar edx, cl
mov eax, dword [ebp - 0x1bc]
mov word [eax], dx
movzx ecx, word [ebp - 0xac]
or ecx, 0xdf1
mov edx, dword [ebp - 0x1bc]
mov word [edx], cx
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
xor ecx, 0xa02
mov word [ebp - 0xac], cx
movzx edx, word [ebp - 0xac]
and edx, 0xca4
mov eax, dword [ebp - 0x1bc]
mov word [eax], dx
mov ecx, dword [ebp - 0x1c]
sub ecx, 0x2ca2
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0xac]
add eax, ecx
mov edx, dword [ebp - 0x1bc]
mov word [edx], ax
movzx eax, word [ebp - 0xac]
sub eax, 0x27c
mov ecx, dword [ebp - 0x1bc]
mov word [ecx], ax
cmp dword [ebp - 0x234], 0x7f58
jae 0x405a6b
mov edx, dword [ebp - 0x128]
mov dword [0x447444], edx
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x158], eax
mov cx, word [ebp - 0x140]
mov word [ebp - 0x88], cx
movsx edx, word [ebp - 0x88]
mov dword [ebp - 0x2b8], edx
cmp dword [ebp - 0x2b8], 0
je 0x405e39
cmp dword [ebp - 0x2b8], 0x9e4
je 0x405e5b
jmp 0x405e7d
movsx eax, byte [ebp - 0x141]
add eax, 0x36
mov byte [ebp - 0x141], al
movzx ecx, byte [ebp - 0x1a2]
add ecx, 0x29
mov byte [ebp - 0x135], cl
jmp 0x405e7d
mov edx, dword [ebp - 0x1bc]
mov ax, word [edx]
mov word [ebp - 0x23c], ax
mov ecx, dword [ebp - 0x128]
mov dword [ebp - 0xc], ecx
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x198], 0xfd0f
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x2bc], eax
cmp dword [ebp - 0x2bc], 0xe48e
je 0x405ea1
jmp 0x405f1d
movzx ecx, word [ebp - 0x23c]
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
sub ecx, eax
mov word [ebp - 0xac], cx
lea ecx, [ebp - 0x150]
push ecx
push 0x64
push 0x3e
mov edx, dword [ebp - 0x29c]
push edx
call fcn.00409680
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x23c]
and ecx, edx
mov eax, dword [ebp - 0x1bc]
mov word [eax], cx
mov ecx, dword [0x447444]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x128]
push eax
mov ecx, dword [0x447444]
push ecx
movzx edx, byte [ebp - 0x141]
push edx
call fcn.004087f0
add esp, 0x14
jmp 0x405f98
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x2c0], eax
cmp dword [ebp - 0x2c0], 0xa9bf
je 0x405f34
jmp 0x405f69
mov ecx, dword [0x447444]
sub ecx, dword [ebp - 0xc]
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0xa0]
or eax, dword [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x94]
mov dword [eax], edx
jmp 0x405f98
mov ecx, dword [ebp - 0x128]
mov dword [ebp - 0x18], ecx
mov dl, byte [ebp - 0x135]
mov byte [ebp - 0xf9], dl
mov ax, word [ebp - 0x23c]
mov word [ebp - 0x1c8], ax
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x94]
mov edx, dword [edx]
mov ecx, dword [eax]
sar edx, cl
mov dword [ebp - 0xb8], edx
movsx eax, byte [ebp - 0x141]
shl eax, 1
mov byte [0x41a006], al
mov cx, word [ebp - 0x140]
mov word [ebp - 0x108], cx
mov dl, byte [ebp - 0x141]
mov byte [ebp - 0x189], dl
mov dword [ebp - 0x180], 0x6be2
mov al, byte [ebp - 0x135]
mov byte [ebp - 0x1e1], al
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x1c8]
add edx, eax
mov word [ebp - 0x23c], dx
cmp dword [ebp - 0x198], 0xfb2c
jbe 0x406316
mov ecx, dword [ebp - 0x1c]
and ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x158]
mov dword [edx], ecx
mov eax, dword [ebp - 0x128]
add eax, dword [0x447444]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x1c]
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0x198]
sub eax, 0x15
mov dword [ebp - 0x198], eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0xb8]
sub edx, dword [ecx]
mov dword [ebp - 0x1c], edx
movsx eax, byte [ebp - 0x189]
movsx ecx, byte [ebp - 0x141]
add eax, ecx
mov byte [0x41a006], al
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0xb8]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x158]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1c8]
add eax, ecx
mov word [ebp - 0x23c], ax
mov edx, dword [0x447444]
add edx, dword [ebp - 0x18]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0xa0]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x94]
mov eax, dword [ecx]
xor eax, dword [edx]
mov ecx, dword [ebp - 0x158]
mov dword [ecx], eax
mov edx, dword [ebp - 0xc]
or edx, dword [ebp - 0x128]
mov dword [ebp - 0x18], edx
movzx eax, byte [ebp - 0x1e1]
movzx ecx, byte [ebp - 0xf9]
sar eax, cl
mov byte [ebp - 0x1a2], al
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx ecx, word [ebp - 0x23c]
shl edx, cl
mov word [ebp - 0xac], dx
movsx eax, byte [ebp - 0x189]
movsx ecx, byte [0x41a006]
sub eax, ecx
mov byte [ebp - 0x141], al
movsx edx, word [ebp - 0x88]
movsx eax, word [ebp - 0x108]
add edx, eax
mov word [0x41a004], dx
mov ecx, dword [ebp - 0x18]
and ecx, dword [0x447444]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x158]
mov eax, dword [edx]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x1c8]
sub edx, eax
mov word [ebp - 0x23c], dx
movzx ecx, byte [ebp - 0x1a2]
movzx edx, byte [ebp - 0xf9]
add ecx, edx
mov byte [ebp - 0x135], cl
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xb8]
sub ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x18]
add edx, dword [ebp - 0xc]
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax]
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0x158]
mov eax, dword [edx]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0xa0], eax
movzx ecx, word [ebp - 0xac]
movzx edx, word [ebp - 0x23c]
sub ecx, edx
mov eax, dword [ebp - 0x1bc]
mov word [eax], cx
movzx edx, byte [ebp - 0x135]
movzx ecx, byte [ebp - 0x1a2]
shl edx, cl
mov byte [ebp - 0x1e1], dl
push 0
lea eax, [ebp - 0x120]
push eax
mov ecx, dword [ebp - 0x11c]
push ecx
mov edx, dword [ebp - 0x120]
push edx
mov eax, dword [ebp - 0x248]
push eax
call dword [0x415030]
mov dword [ebp - 0x1c4], eax
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ecx]
sar edx, cl
mov eax, dword [ebp - 0x158]
mov dword [eax], edx
mov ecx, dword [ebp - 0x248]
push ecx
call dword [0x41502c]
mov dword [ebp - 0x1c4], eax
mov edx, dword [ebp - 0x94]
mov eax, dword [edx]
or eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x158]
mov dword [ecx], eax
mov edx, dword [ebp - 0xa0]
xor edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x158]
mov dword [eax], edx
mov ecx, dword [ebp - 0x158]
mov edx, dword [ecx]
and edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x94]
mov dword [eax], edx
mov ecx, dword [ebp - 0xb8]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xa0], ecx
movsx edx, word [ebp - 0x108]
movsx eax, word [ebp - 0x140]
add edx, eax
mov word [ebp - 0x88], dx
movsx ecx, byte [ebp - 0x189]
movsx edx, byte [0x41a006]
and ecx, edx
mov byte [ebp - 0x141], cl
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x128]
mov dword [0x447444], eax
movzx ecx, word [ebp - 0x1c8]
movzx edx, word [ebp - 0xac]
sub ecx, edx
mov word [ebp - 0x23c], cx
mov eax, dword [ebp - 0xb8]
add eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x94]
mov dword [ecx], eax
mov edx, dword [ebp - 0x128]
sub edx, dword [ebp - 0xc]
mov dword [ebp - 0x18], edx
jmp 0x406007
call dword [0x415048]
mov dword [ebp - 0x168], eax
push 0
push 0
push 0
call dword [0x415024]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x1bc]
mov cx, word [eax]
mov word [ebp - 0x9c], cx
movzx edx, byte [ebp - 0x1a2]
movzx eax, byte [ebp - 0x1e1]
add edx, eax
mov byte [ebp - 0xf9], dl
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0x100], 0x8c88
lea edx, [ebp - 0x128]
mov dword [ebp - 0xa4], edx
movsx eax, word [ebp - 0x88]
mov dword [ebp - 0x2c4], eax
cmp dword [ebp - 0x2c4], 0x71c
je 0x4063a0
cmp dword [ebp - 0x2c4], 0x13c8
je 0x4063fd
jmp 0x4064df
call fcn.00405750
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xf4]
shl edx, cl
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xb8]
sar eax, cl
mov ecx, dword [ebp - 0x94]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x9c]
or eax, ecx
mov word [ebp - 0xac], ax
movzx edx, byte [ebp - 0x1e1]
movzx eax, byte [ebp - 0xf9]
xor edx, eax
mov byte [ebp - 0x1a2], dl
jmp 0x4064df
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
and edx, dword [ebp - 0x18]
mov dword [ebp - 0x128], edx
mov al, byte [ebp - 0x189]
mov byte [ebp - 0x2c8], al
cmp byte [ebp - 0x2c8], 0
je 0x406428
jmp 0x4064bd
push 0x415f38
call dword [0x415020]
mov word [ebp - 0x1b8], ax
mov cl, byte [ebp - 0x1a2]
mov byte [ebp - 0x2cc], cl
cmp byte [ebp - 0x2cc], 0
je 0x40645a
cmp byte [ebp - 0x2cc], 0x1e
je 0x4064ac
jmp 0x4064bb
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x158]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
mov dx, word [ebp - 0x108]
mov word [ebp - 0x160], dx
mov al, byte [0x41a006]
mov byte [ebp - 0x1d1], al
movzx ecx, byte [ebp - 0x135]
movzx edx, byte [ebp - 0x1e1]
add ecx, edx
mov byte [ebp - 0x1a2], cl
mov ax, word [ebp - 0x1c8]
mov word [ebp - 0xd0], ax
jmp 0x4064bb
mov ecx, dword [ebp - 0x128]
add ecx, dword [ebp - 0xc]
mov dword [0x447444], ecx
jmp 0x4064d5
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x94]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x158]
mov dword [edx], ecx
mov dword [ebp - 0x238], 0xa43b
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x100], 0x9ae0
ja 0x40665d
mov ecx, dword [ebp - 0x128]
and ecx, dword [ebp - 0xc]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0xb8]
add eax, dword [edx]
mov ecx, dword [ebp - 0x10c]
mov dword [ecx], eax
movzx edx, byte [ebp - 0x1a2]
movzx eax, byte [ebp - 0x1e1]
sub edx, eax
mov byte [ebp - 0xf9], dl
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x9c]
sub edx, eax
mov ecx, dword [ebp - 0x1bc]
mov word [ecx], dx
mov edx, dword [ebp - 0x158]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x10c]
add eax, dword [ecx]
mov dword [ebp - 0xb8], eax
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x128]
xor eax, dword [edx]
mov dword [ebp - 0xc], eax
movsx ecx, byte [ebp - 0x1d1]
movsx edx, byte [ebp - 0x141]
or ecx, edx
mov byte [0x41a006], cl
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x10c]
mov edx, dword [eax]
mov ecx, dword [ecx]
sar edx, cl
mov dword [ebp - 0x1c], edx
movzx eax, word [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1bc]
movzx ecx, word [ecx]
shl eax, cl
mov word [ebp - 0xd0], ax
movzx edx, byte [ebp - 0x1a2]
movzx eax, byte [ebp - 0x135]
and edx, eax
mov byte [ebp - 0x1e1], dl
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
add edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xa4]
mov dword [eax], edx
movsx ecx, byte [ebp - 0x189]
movsx edx, byte [0x41a006]
sub ecx, edx
mov byte [ebp - 0x141], cl
mov eax, dword [ebp - 0x100]
add eax, 0x36
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
add edx, dword [ebp - 0x128]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0xa0], eax
movzx ecx, byte [ebp - 0x1a2]
movzx edx, byte [ebp - 0xf9]
sub ecx, edx
mov byte [ebp - 0x135], cl
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x1c8]
and ecx, edx
mov eax, dword [ebp - 0x1bc]
mov word [eax], cx
jmp 0x4064eb
push 0x415f50
call dword [0x415020]
mov word [ebp - 0xcc], ax
mov cl, byte [ebp - 0x141]
mov byte [ebp - 0x2d0], cl
cmp byte [ebp - 0x2d0], 0
je 0x406686
jmp 0x4066b4
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x128]
add eax, dword [edx]
mov dword [ebp - 0x18], eax
push 0
push 0
call dword [0x41501c]
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xb8]
add edx, dword [ecx]
mov dword [ebp - 0x1c], edx
jmp 0x4066cd
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [eax]
mov dword [ebp - 0xb8], ecx
mov ecx, dword [ebp - 0x1c]
call fcn.004057e0
mov edx, dword [0x447444]
mov dword [ebp - 0x17c], edx
push 0
push 4
push 2
push 0
push 2
push 0xc0000000
push 0x415f70
call dword [str.uaVj_b]
mov dword [ebp - 0xe8], eax
mov al, byte [ebp - 0x141]
mov byte [ebp - 0x2d4], al
cmp byte [ebp - 0x2d4], 0
je 0x406713
jmp 0x4067e5
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx eax, word [ebp - 0xd0]
xor edx, eax
mov word [ebp - 0x9c], dx
mov cl, byte [ebp - 0x135]
mov byte [ebp - 0x149], cl
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x94]
mov edx, dword [edx]
mov ecx, dword [eax]
shl edx, cl
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0xa0]
or eax, dword [ebp - 0xf4]
mov dword [ebp - 0xb8], eax
mov cl, byte [ebp - 0xf9]
mov byte [ebp - 0x2d8], cl
cmp byte [ebp - 0x2d8], 0
je 0x4067c0
cmp byte [ebp - 0x2d8], 0xd3
je 0x40677f
jmp 0x4067e3
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x17c]
mov ecx, dword [edx]
shr eax, cl
mov dword [0x447444], eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x94]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp - 0x94]
mov edx, dword [ecx]
add edx, dword [ebp - 0xf4]
mov dword [ebp - 0xa0], edx
jmp 0x4067e3
lea eax, [ebp - 0x1d1]
push eax
push 0xee
push 0xbe
mov ecx, dword [ebp - 0x240]
push ecx
call fcn.00409680
mov dword [ebp - 0x25c], eax
jmp 0x406825
movzx edx, word [ebp - 0xac]
movzx eax, word [ebp - 0xd0]
sub edx, eax
mov ecx, dword [ebp - 0x1bc]
mov word [ecx], dx
movzx edx, word [ebp - 0x108]
push edx
movzx eax, word [ebp - 0x1c8]
push eax
mov ecx, dword [0x447444]
push ecx
movzx edx, word [ebp - 0x88]
push edx
call fcn.00408840
add esp, 0x10
mov ax, word [ebp - 0x108]
mov word [ebp - 0xb4], ax
movsx ecx, word [ebp - 0x88]
mov dword [ebp - 0x2dc], ecx
cmp dword [ebp - 0x2dc], 0x523
je 0x4068af
cmp dword [ebp - 0x2dc], 0x67d
je 0x40685d
jmp 0x4068de
mov edx, dword [ebp - 0x17c]
sub edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xa4]
mov dword [eax], edx
movzx ecx, word [ebp - 0x9c]
movzx edx, word [ebp - 0x1c8]
add ecx, edx
mov word [ebp - 0xd0], cx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0x17c], ecx
mov edx, dword [ebp - 0x94]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ecx]
push edx
call fcn.004057a0
jmp 0x4068de
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x9c]
and eax, ecx
mov edx, dword [ebp - 0x1bc]
mov word [edx], ax
mov al, byte [ebp - 0x1e1]
mov byte [ebp - 0x2e0], al
cmp byte [ebp - 0x2e0], 0xe
je 0x4068f5
jmp 0x406950
movzx ecx, byte [ebp - 0x135]
movzx edx, byte [ebp - 0xf9]
add ecx, edx
mov byte [ebp - 0x1e1], cl
mov eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0x128]
shr eax, cl
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xf4]
shl edx, cl
mov eax, dword [ebp - 0x10c]
mov dword [eax], edx
mov ecx, dword [ebp - 0x10c]
mov ecx, dword [ecx]
call fcn.004057e0
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0xb8]
mov dword [ebp - 0xa0], edx
jmp 0x406988
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
or ecx, dword [ebp - 0x18]
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x1bc]
mov ax, word [edx]
mov word [ebp - 0x114], ax
movzx eax, byte [ebp - 0x149]
movzx ecx, byte [ebp - 0x135]
cdq
idiv ecx
mov byte [ebp - 0x1a2], al
mov edx, dword [ebp - 0x94]
mov eax, dword [edx]
mov dword [ebp - 0x2e4], eax
cmp dword [ebp - 0x2e4], 0x6f83
je 0x4069a7
jmp 0x406a2a
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
and edx, dword [ebp - 0x128]
mov dword [0x447444], edx
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0xc0]
push ecx
mov edx, dword [ebp - 0x19c]
push edx
mov eax, dword [ebp - 0x29c]
push eax
mov ecx, dword [ebp - 0xc0]
push ecx
mov edx, dword [ebp - 0x240]
push edx
mov eax, dword [ebp - 0x19c]
push eax
push 0x8a
call fcn.00409686
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx]
add edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x94]
mov dword [eax], edx
movsx ecx, byte [ebp - 0x1d1]
movsx edx, byte [ebp - 0x189]
sub ecx, edx
mov byte [ebp - 0x141], cl
jmp 0x4087b0
movsx eax, byte [0x41a006]
movsx ecx, byte [ebp - 0x141]
sub eax, ecx
movsx edx, byte [ebp - 0x189]
movsx ecx, byte [ebp - 0x1d1]
sub edx, ecx
cmp eax, edx
jge 0x406ac3
movzx edx, byte [ebp - 0x1e1]
movzx eax, byte [ebp - 0x1a2]
add edx, eax
mov byte [ebp - 0xf9], dl
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x23c]
and edx, eax
mov ecx, dword [ebp - 0x1bc]
mov word [ecx], dx
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx]
xor eax, dword [ebp - 0x128]
mov dword [ebp - 0x17c], eax
movzx ecx, byte [ebp - 0x1a2]
push ecx
movzx edx, byte [ebp - 0x149]
push edx
movzx eax, byte [ebp - 0x149]
push eax
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xf4]
call fcn.00408880
jmp 0x406c1e
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0xa0]
add eax, dword [edx]
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xf4]
add edx, dword [ecx]
cmp eax, edx
jne 0x406c1e
movsx eax, word [ebp - 0x160]
movsx ecx, word [ebp - 0x140]
or eax, ecx
movsx edx, word [ebp - 0x108]
movsx ecx, word [ebp - 0xb4]
shl edx, cl
cmp eax, edx
je 0x406c0d
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xc8], eax
movzx ecx, word [ebp - 0x9c]
movzx edx, word [ebp - 0xd0]
sub ecx, edx
movzx eax, word [ebp - 0x23c]
mov edx, dword [ebp - 0x1bc]
movzx edx, word [edx]
sub eax, edx
cmp ecx, eax
je 0x406bc9
mov eax, dword [ebp - 0xa0]
add eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x94]
mov dword [ecx], eax
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0xf4]
sub eax, dword [edx]
mov dword [ebp - 0xb8], eax
movsx ecx, word [ebp - 0x108]
movsx edx, word [ebp - 0x160]
sub ecx, edx
mov word [0x41a004], cx
movzx eax, word [ebp - 0x9c]
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
add eax, edx
mov word [ebp - 0x1c8], ax
movzx eax, byte [ebp - 0x135]
push eax
movzx ecx, byte [ebp - 0x149]
push ecx
movzx edx, byte [ebp - 0x135]
push edx
mov eax, dword [ebp - 0x158]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x158]
mov ecx, dword [ecx]
call fcn.00408880
jmp 0x406c0b
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1c8]
and eax, ecx
movzx edx, word [ebp - 0x114]
movzx ecx, word [ebp - 0x9c]
imul edx, ecx
cmp eax, edx
jl 0x406c0b
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x9c]
add eax, ecx
mov edx, dword [ebp - 0x1bc]
mov word [edx], ax
jmp 0x406c1e
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x128]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x1c]
add eax, dword [edx]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x17c]
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx]
xor eax, dword [ebp - 0xc8]
cmp ecx, eax
jne 0x406c6a
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ecx]
shl edx, cl
mov dword [ebp - 0xf4], edx
call fcn.00405750
jmp 0x406cfb
mov eax, dword [ebp - 0xa4]
mov edx, dword [0x447444]
or edx, dword [eax]
mov eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0x128]
shr eax, cl
cmp edx, eax
jbe 0x406cfb
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x18]
and edx, dword [ecx]
mov dword [ebp - 0xc8], edx
mov al, byte [ebp - 0xf9]
mov byte [ebp - 0x1a1], al
movzx ecx, word [ebp - 0x23c]
movzx edx, word [ebp - 0xd0]
sub ecx, edx
mov word [ebp - 0x9c], cx
mov ax, word [ebp - 0x88]
mov word [ebp - 0xec], ax
mov ecx, dword [ebp - 0xc8]
add ecx, dword [ebp - 0xc]
mov dword [0x4463c8], ecx
push 0
push 0x20
push 2
push 0
push 4
push 0x40000000
push 0x415fb4
call dword [str.uaVj_b]
mov dword [ebp - 0xdc], eax
movsx edx, byte [ebp - 0x1d1]
movsx eax, byte [ebp - 0x141]
and edx, eax
mov byte [ebp - 0x189], dl
lea ecx, [ebp - 0x17c]
mov dword [ebp - 0x24c], ecx
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx]
sub eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x158]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x1c8]
sub eax, ecx
mov word [ebp - 0xac], ax
movzx edx, byte [ebp - 0x149]
movzx eax, byte [ebp - 0xf9]
sub edx, eax
mov byte [ebp - 0x1a2], dl
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x158]
mov dword [edx], ecx
call dword [0x415040]
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebp - 0xc8]
add eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0xa4]
mov dword [ecx], eax
mov edx, dword [ebp - 0x94]
mov eax, dword [edx]
xor eax, dword [ebp - 0xa0]
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x128]
mov ecx, dword [ecx]
shl edx, cl
mov dword [0x4463c8], edx
mov eax, dword [ebp - 0x248]
push eax
call dword [0x41502c]
mov dword [ebp - 0x1c4], eax
movzx edx, byte [ebp - 0x135]
movzx ecx, byte [ebp - 0x149]
sar edx, cl
mov byte [ebp - 0xf9], dl
movzx eax, word [ebp - 0x1b8]
push eax
call dword [0x415018]
mov word [ebp - 0x230], ax
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x9c]
or edx, eax
mov word [ebp - 0x1c8], dx
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ecx]
and edx, dword [ebp - 0x17c]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 0x158]
mov dword [edx], ecx
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x10c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x158]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x94]
add eax, dword [ecx]
mov dword [ebp - 0xb8], eax
mov edx, dword [ebp - 0x158]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x94]
add eax, dword [ecx]
mov dword [ebp - 0xa0], eax
movsx edx, byte [ebp - 0x141]
movsx eax, byte [ebp - 0x1d1]
and edx, eax
mov byte [ebp - 0x189], dl
movsx ecx, word [ebp - 0x108]
movsx edx, word [ebp - 0x160]
add ecx, edx
mov word [0x41a004], cx
movzx eax, word [ebp - 0x1c8]
movzx ecx, word [ebp - 0x23c]
add eax, ecx
mov word [ebp - 0xd0], ax
movzx edx, byte [ebp - 0x1a2]
movzx eax, byte [ebp - 0x1a1]
sub edx, eax
mov byte [ebp - 0x135], dl
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x128]
sub edx, dword [ecx]
mov dword [ebp - 0x17c], edx
call dword [0x415048]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x98]
add eax, 0x6a
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0xa4]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [ebp - 0xc], eax
movzx ecx, byte [ebp - 0x1e1]
movzx edx, byte [ebp - 0x1a1]
xor ecx, edx
mov byte [ebp - 0x149], cl
push 0
push 0
push 0xae97
mov eax, dword [ebp - 0xdc]
push eax
call dword [0x415014]
mov dword [ebp - 0x254], eax
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx ecx, word [ebp - 0x9c]
shl edx, cl
mov word [ebp - 0x114], dx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xf4]
sar eax, cl
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0xa4]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x18]
sub edx, dword [ecx]
mov dword [0x4463c8], edx
push 0x415fc4
call dword [0x415020]
mov word [ebp - 0x230], ax
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0xa0]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
movzx ecx, word [ebp - 0xd0]
sub eax, ecx
mov edx, dword [ebp - 0x1bc]
mov word [edx], ax
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x94]
mov dword [edx], ecx
mov eax, dword [0x4463c8]
add eax, dword [ebp - 0xc8]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xb8]
and edx, dword [ecx]
mov dword [ebp - 0x1c], edx
movsx eax, byte [ebp - 0x1d1]
movsx ecx, byte [ebp - 0x141]
add eax, ecx
mov byte [ebp - 0x189], al
movsx edx, word [ebp - 0x160]
movsx eax, word [ebp - 0xec]
sub edx, eax
mov word [ebp - 0x88], dx
movzx ecx, word [ebp - 0x114]
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
add ecx, eax
mov word [ebp - 0x1c8], cx
movsx edx, word [ebp - 0x140]
movsx ecx, word [ebp - 0xb4]
shl edx, cl
mov word [0x41a004], dx
mov eax, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x128]
or ecx, dword [eax]
mov edx, dword [ebp - 0xa4]
mov dword [edx], ecx
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x94]
mov edx, dword [eax]
mov ecx, dword [ecx]
sar edx, cl
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xa0]
xor eax, dword [ebp - 0xb8]
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp - 0xc8]
and ecx, dword [0x447444]
mov edx, dword [ebp - 0x24c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x94]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0xf4], edx
movzx eax, word [ebp - 0xac]
movzx ecx, word [ebp - 0x9c]
sub eax, ecx
mov word [ebp - 0x114], ax
mov edx, dword [ebp - 0x248]
push edx
call dword [0x41502c]
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x158]
mov dword [ecx], eax
mov edx, dword [ebp - 0xb8]
add edx, dword [ebp - 0xa0]
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x24c]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [0x447444], edx
movzx eax, word [ebp - 0xcc]
push eax
call dword [0x415018]
mov word [ebp - 0x1b8], ax
cmp dword [ebp - 0x98], 0x6c64
jbe 0x406d33
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1d0], ecx
mov edx, dword [ebp - 0x158]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x10c]
add eax, dword [ecx]
mov dword [ebp - 0xa0], eax
lea edx, [ebp - 0x50]
push edx
mov eax, dword [ebp - 0x248]
push eax
call dword [0x415034]
mov dword [ebp - 0x1c4], eax
movzx ecx, byte [ebp - 0x135]
movzx edx, byte [ebp - 0x149]
and ecx, edx
mov byte [ebp - 0xf9], cl
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x9c]
add ecx, edx
mov eax, dword [ebp - 0x1bc]
mov word [eax], cx
movsx ecx, byte [ebp - 0x1d1]
movsx edx, byte [ebp - 0x189]
xor ecx, edx
mov byte [ebp - 0x141], cl
movsx eax, word [ebp - 0x160]
movsx ecx, word [ebp - 0x88]
shl eax, cl
mov word [ebp - 0xb4], ax
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0xa4]
mov eax, dword [ecx]
mov ecx, dword [edx]
shr eax, cl
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx]
or edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x94]
mov dword [eax], edx
mov ecx, dword [ebp - 0x18]
add ecx, dword [ebp - 0xc]
mov dword [0x4463c8], ecx
movzx edx, word [ebp - 0x114]
movzx eax, word [ebp - 0x23c]
and edx, eax
mov word [ebp - 0xac], dx
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xc8]
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x94]
mov edx, dword [eax]
sub edx, dword [ecx]
mov eax, dword [ebp - 0x158]
mov dword [eax], edx
push 0
push 0
call dword [0x415010]
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ebp - 0xf4]
sub edx, dword [ecx]
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0xc8]
add ecx, dword [eax]
mov dword [ebp - 0x128], ecx
movzx edx, word [ebp - 0x9c]
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
sub edx, ecx
mov word [ebp - 0xac], dx
movzx edx, byte [ebp - 0x1a2]
movzx eax, byte [ebp - 0x149]
add edx, eax
mov byte [ebp - 0x1e1], dl
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ebp - 0xb8]
add edx, dword [ecx]
mov eax, dword [ebp - 0x158]
mov dword [eax], edx
mov ecx, dword [ebp - 0x238]
sub ecx, 0xf5
mov dword [ebp - 0x238], ecx
movsx edx, byte [ebp - 0x189]
movsx eax, byte [ebp - 0x141]
and edx, eax
mov byte [0x41a006], dl
mov ecx, dword [ebp - 0x18]
or ecx, dword [ebp - 0x17c]
mov edx, dword [ebp - 0x24c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x10c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xa0]
sar edx, cl
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x94]
mov edx, dword [eax]
xor edx, dword [ecx]
mov dword [ebp - 0x1c], edx
movzx eax, word [ebp - 0x23c]
movzx ecx, word [ebp - 0x114]
shl eax, cl
mov ecx, dword [ebp - 0x1bc]
mov word [ecx], ax
movsx edx, word [0x41a004]
movsx eax, word [ebp - 0x108]
sub edx, eax
mov word [ebp - 0xb4], dx
movzx ecx, word [ebp - 0x114]
movzx edx, word [ebp - 0x1c8]
add ecx, edx
mov word [ebp - 0xac], cx
movzx eax, byte [ebp - 0x1a2]
movzx ecx, byte [ebp - 0x149]
and eax, ecx
mov byte [ebp - 0x1a1], al
mov edx, dword [ebp - 0x18]
sub edx, dword [ebp - 0xc]
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x24c]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [0x447444], edx
cmp dword [ebp - 0x238], 0x5d69
jae 0x40717e
mov eax, dword [ebp - 0xc8]
add eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
add edx, dword [ebp - 0x128]
cmp eax, edx
ja 0x407409
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0xac]
add ecx, edx
mov word [ebp - 0x23c], cx
lea eax, [ebp - 0xf9]
mov dword [ebp - 0x1f8], eax
movsx ecx, byte [ebp - 0x189]
movsx edx, byte [ebp - 0x141]
sub ecx, edx
movsx eax, byte [0x41a006]
movsx edx, byte [ebp - 0x1d1]
sub eax, edx
cmp ecx, eax
je 0x4074cf
mov eax, dword [ebp - 0x17c]
add eax, dword [ebp - 0xc8]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x1a1]
push ecx
mov edx, dword [ebp - 0x15c]
push edx
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ebp - 0x140]
push ecx
mov edx, dword [ebp - 0x29c]
push edx
mov eax, dword [ebp - 0xc0]
push eax
mov ecx, dword [ebp - 0xc0]
push ecx
push 0x10
call fcn.0040968c
mov dword [ebp - 0x2ac], eax
mov edx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x1c]
shl edx, cl
mov eax, dword [ebp - 0x10c]
mov dword [eax], edx
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x128]
push eax
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
push ecx
movzx edx, byte [ebp - 0x189]
push edx
call fcn.004087f0
add esp, 0x14
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x24c]
mov edx, dword [0x447444]
mov ecx, dword [ecx]
shr edx, cl
mov dword [ebp - 0xc8], edx
movzx eax, word [ebp - 0x9c]
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
or eax, edx
mov word [ebp - 0x114], ax
mov al, byte [ebp - 0x1a2]
mov byte [ebp - 0x24d], al
lea ecx, [ebp - 0xb4]
mov dword [0x447440], ecx
mov edx, dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x1c]
xor eax, dword [edx]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ecx]
mov dword [ebp - 0x2e8], edx
cmp dword [ebp - 0x2e8], 0xffbfff60
je 0x407552
jmp 0x408781
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x188]
mov edx, dword [ebp - 0xf4]
and edx, dword [ebp - 0xb8]
cmp ecx, edx
jge 0x4075c8
movsx eax, byte [ebp - 0x189]
movsx ecx, byte [ebp - 0x141]
sub eax, ecx
mov byte [ebp - 0x1d1], al
movzx edx, word [ebp - 0xac]
movzx eax, word [ebp - 0x1c8]
sub edx, eax
mov word [ebp - 0x9c], dx
movzx ecx, word [ebp - 0xb4]
push ecx
movzx edx, word [ebp - 0xac]
push edx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
push ecx
mov edx, dword [0x447440]
movzx eax, word [edx]
push eax
call fcn.00408840
add esp, 0x10
movsx ecx, byte [ebp - 0x1d1]
movsx edx, byte [ebp - 0x189]
add ecx, edx
movsx eax, byte [ebp - 0x141]
movsx edx, byte [0x41a006]
add eax, edx
cmp ecx, eax
je 0x40765f
movzx eax, byte [ebp - 0x1e1]
movzx ecx, byte [ebp - 0x1a1]
add eax, ecx
mov edx, dword [ebp - 0x1f8]
mov byte [edx], al
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x2ac], eax
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
mov dword [ebp - 0x2ac], edx
mov eax, dword [0x447440]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x160]
xor ecx, edx
mov eax, dword [0x447440]
mov word [eax], cx
mov ecx, dword [0x447440]
movzx edx, word [ecx]
push edx
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
push ecx
mov edx, dword [ebp - 0xc]
push edx
movzx eax, word [0x41a004]
push eax
call fcn.00408840
add esp, 0x10
lea ecx, [ebp - 0x188]
mov dword [ebp - 0x1e0], ecx
mov edx, dword [ebp - 0x1e0]
mov eax, dword [ebp - 0xb8]
or eax, dword [edx]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx ecx, word [ebp - 0xac]
sar edx, cl
mov word [ebp - 0xd0], dx
mov eax, dword [ebp - 0x1f8]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0x1e1]
shl edx, cl
mov byte [ebp - 0x24d], dl
mov eax, dword [ebp - 0x17c]
and eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x1c]
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x158]
mov edx, dword [eax]
sub edx, dword [ecx]
mov eax, dword [ebp - 0x94]
mov dword [eax], edx
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ecx]
add edx, dword [0x4463c8]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0xac]
add ecx, edx
mov word [ebp - 0x114], cx
mov eax, dword [ebp - 0x180]
add eax, 0x65
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
and edx, dword [ebp - 0x2ac]
mov dword [0x4463c8], edx
movsx eax, byte [ebp - 0x1d1]
movsx ecx, byte [ebp - 0x141]
sub eax, ecx
mov byte [ebp - 0x189], al
movsx edx, word [ebp - 0xec]
movsx eax, word [0x41a004]
sub edx, eax
mov word [ebp - 0x88], dx
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
mov dword [ebp - 0x2ac], edx
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0xb8]
add ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
push 2
call dword [0x41503c]
mov dword [ebp - 0x1c4], eax
mov edx, dword [ebp - 0x1f8]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1e1]
add eax, ecx
mov byte [ebp - 0x135], al
movzx edx, word [ebp - 0x114]
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
xor edx, ecx
mov word [ebp - 0x9c], dx
mov edx, dword [ebp - 0x188]
mov ecx, dword [ebp - 0xa0]
sar edx, cl
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x17c]
or ecx, dword [eax]
mov dword [ebp - 0x128], ecx
movsx edx, byte [ebp - 0x1d1]
movsx ecx, byte [ebp - 0x141]
shl edx, cl
mov byte [0x41a006], dl
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0xa0]
and ecx, dword [eax]
mov edx, dword [ebp - 0x94]
mov dword [edx], ecx
movzx eax, byte [ebp - 0x135]
movzx ecx, byte [ebp - 0x1a1]
sub eax, ecx
mov edx, dword [ebp - 0x1f8]
mov byte [edx], al
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x23c]
sub ecx, edx
mov eax, dword [ebp - 0x1bc]
mov word [eax], cx
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ecx]
sub edx, dword [0x447444]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xf4]
add ecx, dword [eax]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x1e0]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x158]
add edx, dword [eax]
mov dword [ebp - 0xf4], edx
movsx ecx, byte [ebp - 0x141]
movsx edx, byte [ebp - 0x189]
sub ecx, edx
mov byte [0x41a006], cl
movsx eax, word [ebp - 0xec]
mov ecx, dword [0x447440]
movsx edx, word [ecx]
add eax, edx
mov word [ebp - 0x160], ax
mov eax, dword [ebp - 0x1f8]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0x135]
shl edx, cl
mov byte [ebp - 0x24d], dl
mov eax, dword [ebp - 0x1bc]
movzx edx, word [eax]
movzx ecx, word [ebp - 0x114]
sar edx, cl
mov word [ebp - 0xd0], dx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x24c]
mov edx, dword [eax]
or edx, dword [ecx]
mov eax, dword [ebp - 0xa4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xc]
xor edx, dword [ecx]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x1f8]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x1a1]
and ecx, edx
mov byte [ebp - 0x1a2], cl
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x23c]
add ecx, edx
mov word [ebp - 0xd0], cx
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x1d0]
add ecx, dword [edx]
mov dword [ebp - 0xb8], ecx
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x17c]
mov dword [0x4463c8], eax
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x158]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x1c], eax
push 1
lea ecx, [ebp - 0x120]
push ecx
mov edx, dword [ebp - 0x1ac]
push edx
mov eax, dword [ebp - 0x1b0]
push eax
mov ecx, dword [ebp - 0xdc]
push ecx
call dword [0x415030]
mov dword [ebp - 0x264], eax
mov edx, dword [ebp - 0xa0]
add edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x158]
mov dword [eax], edx
cmp dword [ebp - 0x180], 0x7103
jbe 0x40766b
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx eax, word [ebp - 0xac]
sub edx, eax
mov word [ebp - 0x23c], dx
movzx ecx, byte [ebp - 0x1e1]
movzx edx, byte [ebp - 0x1a2]
and ecx, edx
mov eax, dword [ebp - 0x1f8]
mov byte [eax], cl
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xc]
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0x10c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xf4]
sar edx, cl
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0xb8]
xor ecx, dword [eax]
mov edx, dword [ebp - 0x158]
mov dword [edx], ecx
mov eax, dword [ebp - 0x1f8]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0x149]
shl edx, cl
mov eax, dword [ebp - 0x1f8]
mov byte [eax], dl
movsx ecx, byte [ebp - 0x141]
movsx edx, byte [ebp - 0x189]
or ecx, edx
mov byte [0x41a006], cl
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x9c]
add ecx, edx
mov word [ebp - 0xac], cx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x17c]
mov edx, dword [ebp - 0x24c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x94]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x158]
mov dword [ecx], eax
mov edx, dword [ebp - 0x24c]
mov eax, dword [edx]
add eax, dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x24c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x188]
sub edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x1d0]
mov dword [eax], edx
movzx ecx, word [ebp - 0x1c8]
movzx edx, word [ebp - 0x23c]
add ecx, edx
mov eax, dword [ebp - 0x1bc]
mov word [eax], cx
movzx ecx, word [ebp - 0xcc]
push ecx
call dword [0x415018]
mov word [ebp - 0x1b8], ax
mov edx, dword [ebp - 0x1f8]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1e1]
sub eax, ecx
mov byte [ebp - 0x24d], al
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x17c]
mov dword [0x4463c8], edx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
and ecx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x24c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [eax]
mov ecx, dword [ecx]
shl edx, cl
mov eax, dword [ebp - 0x158]
mov dword [eax], edx
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x1e0]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [ebp - 0x1c], eax
movzx ecx, byte [ebp - 0x1a1]
mov edx, dword [ebp - 0x1f8]
movzx eax, byte [edx]
xor ecx, eax
mov byte [ebp - 0x149], cl
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx ecx, word [ebp - 0x9c]
sar edx, cl
mov word [ebp - 0xac], dx
mov eax, dword [0x447440]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x160]
add ecx, edx
mov word [ebp - 0xb4], cx
movsx eax, byte [ebp - 0x1d1]
movsx ecx, byte [ebp - 0x141]
sub eax, ecx
mov byte [ebp - 0x189], al
mov edx, dword [0x4463c8]
and edx, dword [ebp - 0x128]
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0x110]
sub eax, 0x70
mov dword [ebp - 0x110], eax
movsx ecx, word [ebp - 0xb4]
movsx edx, word [ebp - 0x108]
sub ecx, edx
mov eax, dword [0x447440]
mov word [eax], cx
mov ecx, dword [ebp - 0xe8]
push ecx
call dword [0x41502c]
mov dword [ebp - 0x264], eax
movzx edx, word [ebp - 0x1c8]
movzx eax, word [ebp - 0xd0]
sub edx, eax
mov word [ebp - 0x9c], dx
mov ecx, dword [ebp - 0x1f8]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x135]
add edx, eax
mov ecx, dword [ebp - 0x1f8]
mov byte [ecx], dl
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xc8]
sub eax, dword [edx]
mov ecx, dword [ebp - 0x24c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x94]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x10c]
add eax, dword [ecx]
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0x1d0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x158]
add eax, dword [ecx]
mov dword [ebp - 0x188], eax
mov edx, dword [ebp - 0x2ac]
add edx, dword [ebp - 0x128]
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0x1f8]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x1e1]
sub ecx, edx
mov eax, dword [ebp - 0x1f8]
mov byte [eax], cl
movzx edx, word [ebp - 0xac]
movzx ecx, word [ebp - 0xd0]
shl edx, cl
mov eax, dword [ebp - 0x1bc]
mov word [eax], dx
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x128]
mov ecx, dword [ecx]
shr edx, cl
mov dword [0x447444], edx
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0xa0]
xor ecx, dword [eax]
mov edx, dword [ebp - 0x94]
mov dword [edx], ecx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x24c]
mov edx, dword [eax]
or edx, dword [ecx]
mov eax, dword [ebp - 0xa4]
mov dword [eax], edx
push 1
push 0
push 0x88e7
mov ecx, dword [ebp - 0xdc]
push ecx
call dword [0x415014]
mov dword [ebp - 0xa8], eax
mov edx, dword [ebp - 0x1c]
and edx, dword [ebp - 0xa0]
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa0]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x158]
mov dword [edx], ecx
movzx eax, word [ebp - 0xac]
movzx ecx, word [ebp - 0x23c]
add eax, ecx
mov edx, dword [ebp - 0x1bc]
mov word [edx], ax
mov eax, dword [0x447440]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x140]
and ecx, edx
mov word [ebp - 0x160], cx
movzx eax, byte [ebp - 0x1e1]
movzx ecx, byte [ebp - 0x135]
sub eax, ecx
mov edx, dword [ebp - 0x1f8]
mov byte [edx], al
cmp dword [ebp - 0x110], 0x959f
jae 0x4079e2
mov dword [ebp - 0xd8], 0xe7557686
movzx eax, word [ebp - 0xac]
movzx ecx, word [ebp - 0x9c]
add eax, ecx
mov word [ebp - 0x23c], ax
mov edx, dword [ebp - 0x1bc]
mov ax, word [edx]
mov word [0x447448], ax
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x18]
sub edx, dword [ecx]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xd8]
add eax, 0x18ae897a
mov dword [ebp - 0xd8], eax
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x258], ecx
push 0
push 0
call dword [0x41501c]
mov dword [ebp - 0x178], 0xd6c95954
movzx edx, byte [ebp - 0x1a1]
mov eax, dword [ebp - 0x1f8]
movzx ecx, byte [eax]
add edx, ecx
mov byte [ebp - 0x149], dl
mov dx, word [ebp - 0xd0]
mov word [ebp - 0xe0], dx
mov eax, dword [ebp - 0x178]
add eax, 0x2936b7de
mov dword [ebp - 0x178], eax
lea ecx, [ebp - 0x17c]
mov dword [ebp - 0x1b4], ecx
mov edx, dword [ebp - 0x94]
mov eax, dword [edx]
add eax, dword [ebp - 0xb8]
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x178]
mov dword [ebp - 0x1e8], ecx
mov edx, dword [ebp - 0x1d0]
mov eax, dword [edx]
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0xa4]
mov eax, dword [ecx]
mov ecx, dword [edx]
shl eax, cl
mov ecx, dword [ebp - 0x1b4]
mov dword [ecx], eax
mov edx, dword [ebp - 0x1e0]
mov eax, dword [ebp - 0x158]
mov edx, dword [edx]
mov ecx, dword [eax]
sar edx, cl
mov dword [0x4463cc], edx
call fcn.00403e70
movzx eax, byte [ebp - 0x1a1]
movzx ecx, byte [ebp - 0x1a2]
or eax, ecx
mov byte [ebp - 0x24d], al
lea edx, [ebp - 0xe0]
mov dword [ebp - 0x1d8], edx
mov eax, dword [ebp - 0x1e8]
push eax
mov ecx, dword [ebp - 0x178]
push ecx
mov edx, dword [ebp - 0xd8]
push edx
call dword [ebp - 0xf8]
mov dword [ebp - 0x2a0], eax
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [eax]
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0x1d0]
mov eax, dword [edx]
xor eax, dword [ebp - 0x1c]
mov dword [ebp - 0xc4], eax
mov cx, word [ebp - 0x160]
mov word [ebp - 0x1f0], cx
mov edx, dword [ebp - 0x2a0]
mov dword [ebp - 8], edx
lea eax, [ebp - 0x1d1]
mov dword [ebp - 0x190], eax
mov ecx, dword [0x447440]
movsx edx, word [ecx]
mov dword [ebp - 0x2ec], edx
cmp dword [ebp - 0x2ec], 0x5d9
je 0x408723
cmp dword [ebp - 0x2ec], 0x1dfc
je 0x407fa8
jmp 0x408737
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x2ac]
add ecx, dword [eax]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x94]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x158]
mov dword [edx], ecx
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x2a8], eax
mov ecx, dword [ebp - 0x188]
and ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x2a8], ecx
lea edx, [ebp - 0x24d]
mov dword [ebp - 0x148], edx
mov eax, dword [ebp - 0x1d8]
mov cx, word [eax]
mov word [ebp - 0x1a0], cx
mov dword [ebp - 0x1f4], 0x9747c5b6
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x24c]
add eax, dword [ecx]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0xc4]
sub eax, dword [edx]
mov dword [ebp - 0x188], eax
movzx ecx, word [ebp - 0x1b8]
push ecx
call dword [0x415018]
mov word [ebp - 0xcc], ax
mov dword [ebp - 0xd4], 0xc2
lea edx, [ebp - 0x188]
mov dword [ebp - 0x184], edx
movzx eax, byte [ebp - 0x24d]
movzx ecx, byte [ebp - 0x1e1]
add eax, ecx
mov byte [0x41a007], al
mov edx, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x148]
mov al, byte [edx]
mov byte [ebp - 0x1d9], al
lea ecx, [ebp - 0x1c8]
mov dword [ebp - 0x118], ecx
lea edx, [ebp - 0xb4]
mov dword [ebp - 0x104], edx
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x174], eax
movsx edx, byte [ebp - 0x189]
mov eax, dword [ebp - 0x190]
movsx ecx, byte [eax]
shl edx, cl
mov byte [ebp - 0x141], dl
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ecx]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x170]
or eax, dword [ebp - 0x2a8]
mov ecx, dword [ebp - 0x94]
mov dword [ecx], eax
mov edx, dword [ebp - 0x148]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1f8]
movzx ecx, byte [ecx]
sar eax, cl
mov byte [ebp - 0x24d], al
mov dx, word [ebp - 0x1a0]
mov word [0x447450], dx
mov ax, word [ebp - 0x114]
mov word [ebp - 0x16c], ax
mov dword [ebp - 0x124], 0xd5d4b177
mov ecx, dword [ebp - 0x258]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x2a8]
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c0], eax
call dword [0x415040]
mov dword [ebp - 0x254], eax
mov ecx, dword [ebp - 0x124]
add ecx, 0x2ba34e1b
mov dword [ebp - 0x124], ecx
mov edx, dword [ebp - 0x1d0]
mov eax, dword [edx]
and eax, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x184]
mov dword [ecx], eax
mov edx, dword [ebp - 0x170]
add edx, dword [ebp - 0x188]
mov eax, dword [ebp - 0x1d0]
mov dword [eax], edx
mov ecx, dword [ebp - 0x148]
mov dl, byte [ecx]
mov byte [ebp - 0xb9], dl
mov eax, dword [ebp - 0x118]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
add ecx, eax
mov word [ebp - 0x16c], cx
mov ecx, dword [ebp - 0xd4]
cmp ecx, dword [ebp - 0x124]
jae 0x408575
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x24c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xb8]
mov dword [0x4463cc], ecx
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0xf4]
sub eax, dword [edx]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x174]
mov dl, byte [ecx]
mov byte [ebp - 0xe1], dl
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x2a8]
mov dword [ebp - 0x170], ecx
mov edx, dword [ebp - 0x258]
mov eax, dword [ebp - 0x188]
sub eax, dword [edx]
mov dword [ebp - 0x2a8], eax
mov ecx, dword [ebp - 0x190]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x141]
add edx, eax
mov ecx, dword [ebp - 0x190]
mov byte [ecx], dl
mov edx, dword [ebp - 0x104]
movsx eax, word [edx]
mov ecx, dword [0x447440]
movsx edx, word [ecx]
sub eax, edx
mov word [ebp - 0x1f0], ax
movzx eax, word [0x447448]
movzx ecx, word [ebp - 0x9c]
shl eax, cl
mov word [ebp - 0x1a0], ax
lea ecx, [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x248]
push edx
call dword [0x415034]
mov dword [ebp - 0x1cc], eax
movzx eax, byte [ebp - 0xe1]
xor eax, dword [ebp - 0x1f4]
mov byte [ebp - 0xe1], al
movzx ecx, byte [ebp - 0x1a2]
mov edx, dword [ebp - 0x148]
movzx eax, byte [edx]
or ecx, eax
mov edx, dword [ebp - 0x1f8]
mov byte [edx], cl
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
xor ecx, dword [0x447444]
mov dword [ebp - 0x164], ecx
mov cl, byte [ebp - 0x1f4]
mov dl, byte [ebp - 0xe1]
ror dl, cl
mov byte [ebp - 0xe1], dl
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x24c]
mov edx, dword [eax]
mov ecx, dword [ecx]
shr edx, cl
mov dword [0x4463c8], edx
mov eax, dword [ebp - 0x1bc]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x118]
movzx eax, word [edx]
and ecx, eax
mov edx, dword [ebp - 0x1d8]
mov word [edx], cx
movzx eax, byte [ebp - 0x1e1]
mov ecx, dword [ebp - 0x148]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0x24d], al
mov eax, dword [ebp - 8]
mov cl, byte [ebp - 0xe1]
mov byte [eax], cl
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx]
add eax, dword [ebp - 0xb8]
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx]
add edx, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x1b4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xf4]
sub ecx, dword [ebp - 0x170]
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0x174]
add edx, 1
mov dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x184]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0x1f8]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x148]
movzx eax, byte [edx]
add ecx, eax
mov edx, dword [ebp - 0x1f8]
mov byte [edx], cl
mov eax, dword [ebp - 0x118]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
and ecx, eax
mov word [ebp - 0x23c], cx
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x164]
sub eax, dword [edx]
mov dword [0x4463c8], eax
mov ecx, dword [ebp - 0x1e0]
mov edx, dword [ebp - 0x1d0]
mov eax, dword [ecx]
xor eax, dword [edx]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x104]
movsx edx, word [ecx]
movsx ecx, word [ebp - 0x1f0]
sar edx, cl
mov word [ebp - 0x88], dx
movzx eax, word [ebp - 0x230]
push eax
call dword [0x415018]
mov word [ebp - 0x230], ax
mov ecx, dword [ebp - 0x1f4]
add ecx, 0x2aa5
mov dword [ebp - 0x1f4], ecx
movsx edx, byte [ebp - 0x189]
movsx eax, byte [ebp - 0x1d1]
or edx, eax
mov ecx, dword [ebp - 0x190]
mov byte [ecx], dl
mov edx, dword [ebp - 0x148]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1e1]
shl eax, cl
mov ecx, dword [ebp - 0x1f8]
mov byte [ecx], al
mov edx, dword [ebp - 0x1f4]
imul edx, edx, 0x487d
mov dword [ebp - 0x1f4], edx
mov eax, dword [ebp - 0x118]
movzx ecx, word [eax]
movzx edx, word [ebp - 0xd0]
sub ecx, edx
mov word [ebp - 0xac], cx
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [eax]
and ecx, dword [0x4463c8]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x184]
mov eax, dword [ebp - 0x1c]
add eax, dword [edx]
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0xf4]
add ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0x184]
mov dword [edx], ecx
mov eax, dword [ebp - 0x24c]
mov ecx, dword [0x4463c8]
sub ecx, dword [eax]
mov dword [0x447444], ecx
mov edx, dword [ebp - 0xd4]
add edx, 0x222e7
mov dword [ebp - 0xd4], edx
mov eax, dword [ebp - 0x184]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0x1bc]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x118]
movzx edx, word [ecx]
sub eax, edx
mov ecx, dword [ebp - 0x1d8]
mov word [ecx], ax
mov edx, dword [ebp - 0x1f8]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x1e1]
sub eax, ecx
mov byte [ebp - 0x1a2], al
jmp 0x4081c9
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0x90], edx
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x1b4]
add ecx, dword [edx]
mov dword [ebp - 0x128], ecx
lea eax, [ebp - 0x84]
push eax
mov ecx, dword [ebp - 0x248]
push ecx
call dword [0x415034]
mov dword [ebp - 0x1cc], eax
mov edx, dword [ebp - 0x2a0]
add edx, 0xb0
mov dword [ebp - 0x134], edx
mov eax, dword [ebp - 0x1f8]
movzx edx, byte [eax]
movzx eax, byte [ebp - 0xb9]
and edx, eax
movzx eax, byte [ebp - 0xf9]
movzx ecx, byte [0x41a007]
sar eax, cl
cmp edx, eax
jg 0x408633
mov ecx, dword [ebp - 0x1e0]
mov edx, dword [ebp - 0x258]
mov eax, dword [ecx]
mov ecx, dword [edx]
shl eax, cl
mov dword [ebp - 0x188], eax
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x194], ecx
mov edx, dword [ebp - 0x148]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x1f8]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0x1e1], al
mov dword [0x447454], 0x41a007
jmp 0x40864c
mov eax, dword [ebp - 0x118]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x9c]
add ecx, edx
mov word [ebp - 0x23c], cx
mov eax, dword [ebp - 0xf0]
add eax, 0xb0
mov dword [ebp - 0x130], eax
lea ecx, [ebp - 0x1d1]
mov dword [ebp - 0x1ec], ecx
mov dx, word [0x41a004]
mov word [ebp - 0x13c], dx
mov eax, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x17c]
and ecx, dword [eax]
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x158]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0x148]
mov al, byte [edx]
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0x1bc]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x1c8]
sub edx, eax
mov ecx, dword [ebp - 0x1d8]
mov word [ecx], dx
mov edx, dword [ebp - 0x164]
mov dword [ebp - 0x10], edx
lea eax, [ebp - 0x134]
push eax
call dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x194]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x188]
mov dword [0x4463d0], edx
mov eax, dword [ebp - 0xdc]
push eax
call dword [0x41502c]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x184]
mov edx, dword [ebp - 0x2a8]
add edx, dword [ecx]
mov dword [ebp - 0x188], edx
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x244], eax
jmp 0x408737
mov ecx, dword [ebp - 0x1b4]
mov edx, dword [ecx]
add edx, dword [ebp - 0xc8]
mov dword [0x4463c8], edx
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0xc4]
push edx
call fcn.004057a0
movzx eax, word [ebp - 0xe0]
mov ecx, dword [ebp - 0x1d8]
movzx edx, word [ecx]
and eax, edx
mov ecx, dword [ebp - 0x1bc]
mov word [ecx], ax
mov edx, dword [ebp - 0x1f8]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x135]
sub eax, ecx
mov byte [ebp - 0x24d], al
jmp 0x408798
movsx edx, word [ebp - 0xb4]
movsx eax, word [ebp - 0x108]
sub edx, eax
mov word [ebp - 0xec], dx
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x94]
mov eax, dword [ecx]
and eax, dword [edx]
mov ecx, dword [ebp - 0x10c]
mov dword [ecx], eax
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x10c]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx]
push edx
call fcn.004057a0
mov eax, dword [ebp - 0xb8]
mov esp, ebp
pop ebp
ret