Function at 0x10007be0
Capabilities:
Authenticate hmac
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10034460
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x70c
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov eax, 0x1dd3
mov word [ebp - 0x4fc], ax
mov eax, dword [0x100431d4]
cdq
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], edx
xor ecx, ecx
mov dword [ebp - 0x68], 0xa312a854
mov dword [ebp - 0x64], ecx
mov edx, 0xbfd20
mov dword [ebp - 0x58], 0xc1a5d0c7
mov dword [ebp - 0x54], edx
mov ax, word [0x100431c0]
mov word [ebp - 0x1c], ax
mov ecx, dword [0x10043148]
mov dword [ebp - 0x80], ecx
mov edx, dword [0x10043190]
mov eax, dword [0x10043194]
mov dword [ebp - 0x6fc], eax
mov word [ebp - 0x18], dx
mov ecx, dword [0x10043150]
mov edx, dword [0x10043154]
mov dword [ebp - 0x700], edx
mov word [ebp - 0x20], cx
mov dword [ebp - 0x90], 0xaf99
xor eax, eax
mov dword [ebp - 0x78], 0xd1
mov dword [ebp - 0x74], eax
xor ecx, ecx
mov dword [ebp - 0x60], 0x97
mov dword [ebp - 0x5c], ecx
movsx dx, byte [0x10043093]
mov word [ebp - 0x28], dx
xor eax, eax
mov dword [ebp - 0x44], 0x8ecd0a4d
mov dword [ebp - 0x40], eax
mov ecx, dword [0x10043150]
mov edx, dword [0x10043154]
mov dword [ebp - 0x634], edx
mov word [ebp - 0x24], cx
mov byte [ebp - 0x12], 0xf9
mov dword [ebp - 0x94], 0x69ce71e1
movsx eax, word [0x100431b8]
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movzx eax, word [0x10043170]
mov dword [ebp - 0x38], eax
movzx ecx, byte [0x1004310f]
mov dword [ebp - 0x48], ecx
mov edx, 3
mov word [ebp - 0x34], dx
mov dword [ebp - 0x3c], 0x2b05444b
mov al, byte [0x10043120]
mov byte [ebp - 0x29], al
mov dword [ebp - 0x7c], 0xbf8b6657
mov byte [ebp - 0x11], 0xa0
mov ecx, 0xffffc68c
mov word [ebp - 0x30], cx
movzx eax, word [0x10043170]
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov edx, 0xc
mov word [ebp - 0x4f8], dx
movsx eax, byte [0x10043112]
cdq
mov dword [ebp - 0x6d8], eax
mov dword [ebp - 0x6d4], edx
mov byte [ebp - 0xaa], 0x6b
mov al, byte [0x10043120]
mov byte [ebp - 0xa9], al
mov ecx, 0xffffa97d
mov word [ebp - 0x4f4], cx
mov edx, 0xabfe
mov word [ebp - 0x4f0], dx
mov dword [ebp - 0x638], 0xad05e8b8
mov ax, word [0x1004318c]
mov word [ebp - 0x4ec], ax
mov ecx, dword [0x10043120]
xor edx, edx
mov dword [ebp - 0x6e0], ecx
mov dword [ebp - 0x6dc], edx
mov al, byte [0x10043164]
mov byte [ebp - 0xc2], al
xor ecx, ecx
mov dword [ebp - 0x6e8], 0xaf
mov dword [ebp - 0x6e4], ecx
mov edx, dword [0x10043178]
mov eax, dword [0x1004317c]
mov dword [ebp - 0x63c], eax
mov dword [ebp - 0x640], edx
mov cx, word [0x10043170]
mov word [ebp - 0x4e8], cx
movzx eax, byte [0x10043032]
cdq
mov dword [ebp - 0x6f0], eax
mov dword [ebp - 0x6ec], edx
movsx dx, byte [0x10043093]
mov word [ebp - 0x4e4], dx
mov eax, 0xd48
mov word [ebp - 0x4d8], ax
mov dword [ebp - 0x644], 0x85c3fece
mov byte [ebp - 0xc1], 0xd2
mov ecx, dword [0x10043174]
mov word [ebp - 0x4e0], cx
mov dword [ebp - 0x648], 0xfc984f0e
mov dl, byte [0x1004305a]
mov byte [ebp - 0xc0], dl
mov byte [ebp - 0xbf], 0xe0
mov ax, word [0x1004315c]
mov word [ebp - 0x4dc], ax
mov dword [0x10043160], 0xd6cf
push 0x9f148
push 0x2366a8fc
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp - 0x68]
push edx
call fcn.10023240
mov word [0x10043180], ax
mov eax, dword [0x10043cbc]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], 0x210
jmp 0x10007eb1
mov ecx, dword [ebp - 0xc8]
sub ecx, 1
mov dword [ebp - 0xc8], ecx
cmp dword [ebp - 0xc8], 0
jle 0x10007f18
mov dword [ebp - 0x3c], 0
movzx edx, byte [0x1004300b]
add edx, dword [ebp - 0x38]
mov byte [0x1004300b], dl
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x500], eax
cmp dword [ebp - 0x500], 0
je 0x10007ee5
jmp 0x10007f0a
movsx ecx, byte [ebp - 0x11]
movsx edx, byte [ebp - 0x11]
lea eax, [edx + ecx + 0x8e12]
mov byte [ebp - 0x11], al
movsx eax, word [ebp - 0x18]
cdq
mov ecx, dword [0x100431a8]
sub ecx, eax
mov dword [ebp - 0x90], ecx
mov dx, word [ebp - 0x1c]
add dx, 1
mov word [ebp - 0x1c], dx
jmp 0x10007ea2
mov eax, dword [ebp - 0xd0]
add eax, 0x31f
mov dword [ebp - 0x64c], eax
xor ecx, ecx
mov dword [ebp - 0x60], 2
mov dword [ebp - 0x5c], ecx
cmp dword [0x100431d0], 0
jne 0x10007f4a
mov dword [ebp - 0x12c], 1
jmp 0x10007f54
mov dword [ebp - 0x12c], 0
movzx edx, byte [0x10043032]
not edx
and edx, dword [ebp - 0x12c]
movsx eax, word [ebp - 0x30]
sub eax, edx
not eax
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x80]
add eax, 0x3b103b9c
cdq
mov dword [0x100431c8], eax
mov dword [0x100431cc], edx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb0], edx
mov eax, dword [ebp - 0xb4]
or eax, dword [ebp - 0xb0]
je 0x10007fcb
cmp dword [ebp - 0xb4], 1
jne 0x10007fb7
cmp dword [ebp - 0xb0], 0
je 0x10007feb
cmp dword [ebp - 0xb4], 2
jne 0x10007fc9
cmp dword [ebp - 0xb0], 0
je 0x10008002
jmp 0x10008023
mov ecx, dword [0x100431a0]
mov edx, dword [0x100431a4]
mov dword [ebp - 0x650], edx
sub ecx, 0xf97f
mov dword [0x1004318c], ecx
jmp 0x10008023
movzx eax, word [0x10043170]
mov ecx, dword [0x10043138]
sub ecx, eax
mov dword [0x10043138], ecx
jmp 0x10008023
mov edx, dword [ebp - 0x38]
xor edx, 0x993210b6
mov dword [0x10043148], edx
movzx eax, word [0x1004315c]
xor eax, 0xb70f2c7a
mov word [0x10043170], ax
mov ecx, dword [ebp - 0xd0]
add ecx, 0x356
mov dword [ebp - 0x508], ecx
mov dword [ebp - 4], 0
mov dword [ebp - 0xcc], 0
jmp 0x10008057
mov edx, dword [ebp - 0xcc]
add edx, 2
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0xcc], 0x1df
jge 0x10008078
movsx eax, word [ebp - 0x20]
add eax, 0x26
mov dword [ebp - 0x80], eax
mov cl, byte [ebp - 0x11]
add cl, 1
mov byte [ebp - 0x11], cl
jmp 0x10008048
jmp 0x10008098
mov dword [ebp - 4], 0xffffffff
jmp 0x100080a8
mov ecx, dword [ebp - 0xd0]
add ecx, 0x442
mov dword [ebp - 0x170], ecx
mov edx, dword [0x10043188]
xor eax, eax
push 0x83943
push 0xd4bdd72f
push eax
push edx
call fcn.10023240
mov word [0x10043158], ax
mov ecx, dword [0x10043cbc]
mov dword [ebp - 0xd4], ecx
xor edx, edx
mov dword [0x10043168], 2
mov dword [0x1004316c], edx
push 0
push 0xc3
mov eax, dword [0x100431ac]
push eax
mov ecx, dword [0x100431a8]
push ecx
call fcn.10023240
mov byte [0x10043112], al
mov edx, dword [0x10043168]
mov eax, dword [0x1004316c]
mov dword [ebp - 0xbc], edx
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xbc]
or ecx, dword [ebp - 0xb8]
je 0x10008160
cmp dword [ebp - 0xbc], 1
jne 0x1000814c
cmp dword [ebp - 0xb8], 0
je 0x100081b0
cmp dword [ebp - 0xbc], 2
jne 0x1000815e
cmp dword [ebp - 0xb8], 0
je 0x100081c1
jmp 0x100081d8
movzx eax, word [0x1004315c]
cdq
add eax, 0xe8875d08
mov word [0x10043184], ax
cmp dword [0x10043148], 0
jne 0x10008188
mov dword [ebp - 0x130], 1
jmp 0x10008192
mov dword [ebp - 0x130], 0
movzx edx, byte [0x1004300b]
mov eax, edx
imul eax, dword [ebp - 0x130]
cdq
mov dword [0x100431c8], eax
mov dword [0x100431cc], edx
jmp 0x100081d8
movsx eax, byte [0x10043093]
add eax, 0x542012c6
mov dword [ebp - 0x80], eax
jmp 0x100081d8
mov ecx, dword [0x100431d0]
add ecx, dword [ebp - 0x3c]
xor edx, edx
mov dword [0x10043168], ecx
mov dword [0x1004316c], edx
mov eax, dword [ebp - 0xd4]
add eax, 0x58a
mov dword [ebp - 0x654], eax
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x518], ecx
mov dword [ebp - 0x514], edx
mov eax, dword [ebp - 0x518]
or eax, dword [ebp - 0x514]
je 0x1000821e
cmp dword [0x1004318c], 0
je 0x1000821e
mov dword [ebp - 0x138], 1
jmp 0x10008228
mov dword [ebp - 0x138], 0
movsx ecx, byte [0x1004310e]
test ecx, ecx
jne 0x1000824a
movsx edx, word [0x10043180]
test edx, edx
jne 0x1000824a
mov dword [ebp - 0x134], 0
jmp 0x10008254
mov dword [ebp - 0x134], 1
mov eax, dword [ebp - 0x134]
not eax
cmp dword [ebp - 0x138], eax
jge 0x1000836c
mov dword [ebp - 4], 2
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
push 0
push 0x7322
push edx
push ecx
call fcn.10023240
mov word [ebp - 0x24], ax
cmp dword [0x10043138], 0
jne 0x1000829c
mov dword [ebp - 0x13c], 1
jmp 0x100082a6
mov dword [ebp - 0x13c], 0
mov ecx, dword [0x100431c8]
mov esi, dword [0x100431cc]
movzx eax, byte [0x10043032]
cdq
push esi
push ecx
push edx
push eax
call fcn.10023240
mov ecx, eax
movzx eax, word [ebp - 0x24]
and eax, dword [ebp - 0x13c]
cdq
mov esi, eax
sub esi, ecx
mov ecx, dword [0x100431c0]
not ecx
and ecx, dword [ebp - 0x44]
movsx eax, word [ebp - 0x30]
add eax, 0x2b
cdq
sub eax, ecx
sub eax, esi
mov word [ebp - 0x1c], ax
jmp 0x1000835c
mov dword [ebp - 4], 0xffffffff
jmp 0x1000836c
mov edx, dword [ebp - 0xd4]
add edx, 0x1cc
mov dword [ebp - 0x65c], edx
mov eax, dword [0x10043138]
xor ecx, ecx
or eax, dword [0x10043140]
or ecx, dword [0x10043144]
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x51c], ecx
mov edx, dword [ebp - 0x520]
or edx, dword [ebp - 0x51c]
jne 0x100083bd
cmp dword [ebp - 0x3c], 0
jne 0x100083bd
mov dword [ebp - 0x140], 0
jmp 0x100083c7
mov dword [ebp - 0x140], 1
mov eax, dword [ebp - 0x140]
not eax
test eax, eax
je 0x10008472
mov ecx, dword [0x100431b0]
mov edx, dword [0x100431b4]
mov eax, dword [0x10043120]
xor esi, esi
mov dword [ebp - 0x528], eax
mov dword [ebp - 0x524], esi
mov dword [ebp - 0x530], ecx
mov dword [ebp - 0x52c], edx
mov ecx, dword [ebp - 0x524]
cmp ecx, dword [ebp - 0x52c]
ja 0x1000842c
jb 0x10008420
mov edx, dword [ebp - 0x528]
cmp edx, dword [ebp - 0x530]
ja 0x1000842c
mov dword [0x10043188], 0xc6
jmp 0x1000846d
cmp dword [0x10043138], 0
je 0x10008448
movsx eax, word [ebp - 0x28]
cdq
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x340], edx
jmp 0x1000845f
mov eax, dword [0x100431c8]
mov ecx, dword [0x100431cc]
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x340], ecx
mov dx, word [ebp - 0x344]
mov word [0x10043198], dx
jmp 0x1000855d
mov eax, dword [0x10043150]
mov ecx, dword [0x10043154]
mov dword [ebp - 0x538], eax
mov dword [ebp - 0x534], ecx
cmp dword [ebp - 0x534], 0xa33d1
jb 0x100084af
ja 0x100084a3
cmp dword [ebp - 0x538], 0x6ef5bd63
jbe 0x100084af
mov dword [ebp - 0x148], 1
jmp 0x100084b9
mov dword [ebp - 0x148], 0
cmp dword [ebp - 0x48], 0
jne 0x100084cb
mov dword [ebp - 0x144], 1
jmp 0x100084d5
mov dword [ebp - 0x144], 0
movzx edx, byte [0x1004300b]
cmp dword [ebp - 0x144], edx
je 0x100084f0
mov dword [ebp - 0x14c], 1
jmp 0x100084fa
mov dword [ebp - 0x14c], 0
mov eax, dword [ebp - 0x148]
cmp eax, dword [ebp - 0x14c]
jg 0x1000852d
mov ecx, dword [0x10043150]
mov edx, dword [0x10043154]
mov dword [ebp - 0x660], edx
movsx eax, byte [ebp - 0x11]
cdq
sub eax, ecx
mov dl, byte [ebp - 0x11]
mov ecx, eax
shl dl, cl
mov byte [ebp - 0x11], dl
jmp 0x1000855d
cmp dword [ebp - 0x7c], 0
je 0x1000855d
mov eax, dword [ebp - 0x94]
cdq
sub eax, 0x40302b8a
sbb edx, 0xf66ab
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
sub eax, dword [ebp - 0x68]
sbb ecx, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0xd4]
add edx, 0x42b
mov dword [ebp - 0x188], edx
cmp dword [ebp - 0x3c], 0
je 0x10008656
mov eax, dword [0x10043168]
mov ecx, dword [0x1004316c]
mov edx, dword [0x10043190]
mov esi, dword [0x10043194]
mov dword [ebp - 0x540], edx
mov dword [ebp - 0x53c], esi
mov dword [ebp - 0x548], eax
mov dword [ebp - 0x544], ecx
mov eax, dword [ebp - 0x540]
cmp eax, dword [ebp - 0x548]
jne 0x100085c4
mov ecx, dword [ebp - 0x53c]
cmp ecx, dword [ebp - 0x544]
je 0x100085d0
mov dword [ebp - 0x150], 1
jmp 0x100085da
mov dword [ebp - 0x150], 0
mov edx, dword [0x10043190]
mov eax, dword [0x10043194]
mov dword [ebp - 0x550], edx
mov dword [ebp - 0x54c], eax
cmp dword [ebp - 0x550], 7
jne 0x10008603
cmp dword [ebp - 0x54c], 0
je 0x1000860f
mov dword [ebp - 0x154], 1
jmp 0x10008619
mov dword [ebp - 0x154], 0
mov ecx, dword [ebp - 0x150]
cmp ecx, dword [ebp - 0x154]
jle 0x1000864a
movzx dx, byte [0x1004310f]
mov word [0x10043180], dx
movsx eax, word [0x10043180]
cdq
add eax, 0x7550957f
mov byte [0x10043093], al
jmp 0x10008656
movsx eax, word [ebp - 0x30]
imul eax, dword [ebp - 0x80]
mov word [ebp - 0x30], ax
mov ecx, dword [0x10043cbc]
mov dword [ebp - 0xd8], ecx
xor edx, edx
mov dword [0x100431b0], 2
mov dword [0x100431b4], edx
mov eax, dword [0x10043cbc]
xor ecx, ecx
mov dword [0x10043178], eax
mov dword [0x1004317c], ecx
mov edx, 1
imul eax, edx, 0x789
movzx cx, byte [eax + 0x100c0518]
mov word [ebp - 0x28], cx
mov edx, dword [0x100431b0]
mov eax, dword [0x100431b4]
mov dword [ebp - 0x128], edx
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x128]
or ecx, dword [ebp - 0x124]
je 0x100086e8
cmp dword [ebp - 0x128], 1
jne 0x100086d4
cmp dword [ebp - 0x124], 0
je 0x10008712
cmp dword [ebp - 0x128], 2
jne 0x100086e6
cmp dword [ebp - 0x124], 0
je 0x10008728
jmp 0x1000874c
movzx edx, byte [0x1004310f]
sar edx, 4
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
push 0
push 0xf666
push ecx
push eax
call fcn.10023240
mov word [0x10043170], ax
jmp 0x1000874c
movsx edx, word [ebp - 0x18]
sub edx, dword [0x100431d0]
movsx eax, word [ebp - 0x18]
sub eax, edx
mov word [ebp - 0x18], ax
jmp 0x1000874c
movsx ecx, word [ebp - 0x20]
mov edx, 4
imul eax, edx, 0x24
mov dword [eax + 0x100ddc58], ecx
mov cx, word [0x10043170]
add cx, 1
mov word [0x10043170], cx
mov edx, dword [ebp - 0xd8]
add edx, 0x234
mov dword [ebp - 0x39c], edx
mov eax, dword [ebp - 0xd8]
add eax, 0x219
mov dword [ebp - 0x664], eax
mov ecx, dword [0x100431a0]
mov esi, dword [0x100431a4]
movzx eax, byte [0x1004300a]
cdq
mov dword [ebp - 0x558], eax
mov dword [ebp - 0x554], edx
mov dword [ebp - 0x560], ecx
mov dword [ebp - 0x55c], esi
mov edx, dword [ebp - 0x554]
cmp edx, dword [ebp - 0x55c]
jl 0x100087c5
jg 0x100087b9
mov eax, dword [ebp - 0x558]
cmp eax, dword [ebp - 0x560]
jb 0x100087c5
mov dword [ebp - 0x158], 1
jmp 0x100087cf
mov dword [ebp - 0x158], 0
cmp dword [ebp - 0x158], 0xfffffffe
jge 0x1000880a
movzx eax, word [ebp - 0x34]
not eax
cdq
add eax, dword [0x100431c0]
mov word [ebp - 0x28], ax
movzx ecx, byte [0x1004305a]
movsx edx, word [ebp - 0x20]
imul edx, ecx
mov ax, word [ebp - 0x20]
mov cx, dx
shl ax, cl
mov word [ebp - 0x20], ax
jmp 0x10008915
mov ecx, dword [0x100431a0]
mov edx, dword [0x100431a4]
mov dword [ebp - 0x510], ecx
mov dword [ebp - 0x50c], edx
cmp dword [ebp - 0x510], 0xaff31f72
jne 0x10008843
cmp dword [ebp - 0x50c], 0
jne 0x10008843
mov dword [ebp - 0x2f4], 1
jmp 0x1000884d
mov dword [ebp - 0x2f4], 0
cmp dword [ebp - 0x2f4], 2
jle 0x1000886f
mov byte [0x10043112], 0xe6
mov eax, dword [0x100431d4]
add eax, 1
mov dword [0x100431d4], eax
jmp 0x10008915
movsx ecx, byte [ebp - 0x12]
not ecx
test ecx, ecx
je 0x10008915
mov edx, dword [0x1004317c]
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
add eax, dword [0x10043178]
adc ecx, edx
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ecx
cmp dword [ebp - 0x3c], 0
jne 0x100088b1
xor edx, edx
mov dword [ebp - 0x34c], 1
mov dword [ebp - 0x348], edx
jmp 0x100088bc
xorps xmm0, xmm0
movlpd qword [ebp - 0x34c], xmm0
movzx eax, byte [0x1004300b]
cdq
mov ecx, dword [ebp - 0x34c]
add ecx, 0x9645effd
mov esi, dword [ebp - 0x348]
adc esi, 0x1bb5b
and ecx, eax
and esi, edx
mov dword [ebp - 0x568], ecx
mov dword [ebp - 0x564], esi
mov edx, dword [ebp - 0x568]
or edx, dword [ebp - 0x564]
jne 0x10008903
mov byte [ebp - 0x89], 1
jmp 0x1000890a
mov byte [ebp - 0x89], 0
mov al, byte [ebp - 0x89]
mov byte [0x10043032], al
mov ecx, dword [ebp - 0xd8]
add ecx, 0x2d4
mov dword [ebp - 0x22c], ecx
mov edx, dword [0x10043cbc]
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xdc], 0x4a4
mov eax, dword [0x10043138]
imul eax, dword [0x1004318c]
mov dword [0x10043138], eax
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
push 0
push 0x6d4c9fa8
push edx
push ecx
call fcn.10023240
mov ecx, eax
movsx eax, word [ebp - 0x20]
cdq
add eax, ecx
mov word [ebp - 0x20], ax
cmp dword [ebp - 0xdc], 0x30a
jle 0x100089bb
movzx edx, word [ebp - 0x24]
mov eax, dword [0x10043120]
sub eax, edx
mov dword [0x10043120], eax
movsx ecx, byte [0x10043112]
movzx edx, word [0x10043158]
sub edx, ecx
movzx eax, word [0x10043158]
sub eax, edx
mov word [0x10043158], ax
mov ecx, dword [ebp - 0xdc]
sub ecx, 1
mov dword [ebp - 0xdc], ecx
jmp 0x1000896f
mov edx, dword [ebp - 0xe4]
add edx, 0x3e0
mov dword [ebp - 0x668], edx
mov eax, dword [0x1004312c]
push eax
mov ecx, dword [0x10043128]
push ecx
push 0
push 0
push 0
push 0x6a
push 0
push 0x92
push 0
push 0
call fcn.1001cb70
mov dword [0x10043178], eax
mov dword [0x1004317c], edx
mov edx, dword [0x10043178]
mov eax, dword [0x1004317c]
mov dword [ebp - 0x570], edx
mov dword [ebp - 0x56c], eax
cmp dword [ebp - 0x56c], 0
ja 0x10008a34
jb 0x10008a28
cmp dword [ebp - 0x570], 0
jae 0x10008a34
mov dword [ebp - 0x15c], 1
jmp 0x10008a3e
mov dword [ebp - 0x15c], 0
mov ecx, dword [0x10043178]
mov edx, dword [0x1004317c]
mov dword [ebp - 0x578], ecx
mov dword [ebp - 0x574], edx
cmp dword [ebp - 0x574], 0
ja 0x10008a76
jb 0x10008a6a
cmp dword [ebp - 0x578], 0x5c
jae 0x10008a76
mov dword [ebp - 0x160], 1
jmp 0x10008a80
mov dword [ebp - 0x160], 0
mov eax, dword [ebp - 0x15c]
cmp eax, dword [ebp - 0x160]
jg 0x10008bab
push 0
push 0
call fcn.1001d4f0
mov word [ebp - 0x20], ax
movsx ecx, word [ebp - 0x20]
test ecx, ecx
je 0x10008b3b
mov edx, 2
mov word [0x10043180], dx
mov eax, dword [ebp - 0x68]
add eax, 0x3b74f745
mov byte [0x1004310e], al
movsx ecx, word [0x10043180]
mov dword [ebp - 0xe0], ecx
cmp dword [ebp - 0xe0], 0
je 0x10008aee
cmp dword [ebp - 0xe0], 1
je 0x10008b00
cmp dword [ebp - 0xe0], 2
je 0x10008b0e
jmp 0x10008b39
movzx edx, byte [0x1004305b]
imul eax, edx, 0x59b7
mov dword [ebp - 0x48], eax
jmp 0x10008b39
mov ecx, 4
mov word [0x10043184], cx
jmp 0x10008b39
mov byte [0x1004310e], 0x5e
movzx eax, word [0x10043170]
cdq
mov ecx, dword [ebp - 0x88]
mov esi, dword [ebp - 0x84]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], esi
jmp 0x10008ba9
mov edx, dword [0x10043148]
shl edx, 2
xor eax, eax
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
movzx ecx, byte [0x1004305a]
movsx edx, word [0x100431b8]
add edx, ecx
jne 0x10008b72
xor eax, eax
mov dword [ebp - 0x32c], 1
mov dword [ebp - 0x328], eax
jmp 0x10008b7d
xorps xmm0, xmm0
movlpd qword [ebp - 0x32c], xmm0
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
add ecx, 0x176a7076
adc edx, 0xe6b55
mov eax, dword [ebp - 0x328]
push eax
mov eax, dword [ebp - 0x32c]
push eax
push edx
push ecx
call fcn.10023240
mov dword [0x10043138], eax
jmp 0x10008bbe
imul ecx, dword [ebp - 0x90], 0x893d9e55
movsx edx, byte [ebp - 0x11]
sub edx, ecx
mov byte [ebp - 0x11], dl
mov eax, dword [ebp - 0xe4]
add eax, 0x440
mov dword [ebp - 0x3c0], eax
movzx eax, word [0x10043198]
cdq
mov dword [0x100431c0], eax
mov dword [0x100431c4], edx
mov ecx, dword [0x10043168]
mov edx, dword [0x1004316c]
sub ecx, 0x1a
sbb edx, 0
mov eax, dword [0x100431a0]
mov esi, dword [0x100431a4]
add eax, ecx
adc esi, edx
mov dword [0x100431a0], eax
mov dword [0x100431a4], esi
mov ecx, dword [ebp - 0xe4]
add ecx, 0x385
mov dword [ebp - 0x290], ecx
movzx edx, word [0x10043170]
cmp edx, dword [ebp - 0x38]
jl 0x10008c38
mov dword [ebp - 0x164], 1
jmp 0x10008c42
mov dword [ebp - 0x164], 0
movzx eax, word [0x10043170]
cmp eax, 1
jl 0x10008c5a
mov dword [ebp - 0x168], 1
jmp 0x10008c64
mov dword [ebp - 0x168], 0
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [ebp - 0x168]
jle 0x10008d3e
movsx dx, byte [0x1004310e]
movzx eax, dx
push eax
push 0
call fcn.1001d4f0
mov byte [0x10043093], al
movsx ecx, byte [ebp - 0x29]
test ecx, ecx
je 0x10008c9c
cmp dword [ebp - 0x7c], 0
je 0x10008d1b
movsx dx, byte [ebp - 0x11]
movzx eax, dx
push eax
call fcn.1001c420
movsx ecx, ax
mov dword [ebp - 0x48], ecx
cmp dword [ebp - 0x48], 0
je 0x10008cb8
jmp 0x10008d19
cmp dword [ebp - 0x7c], 0
je 0x10008d19
mov edx, dword [0x10043178]
mov eax, dword [0x1004317c]
mov dword [ebp - 0x66c], eax
add edx, 0x33b3
mov dword [ebp - 0x94], edx
mov ecx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x6c]
movzx eax, word [0x10043170]
cdq
mov edi, eax
mov ebx, edx
and edi, dword [0x100431a8]
and ebx, dword [0x100431ac]
add edi, ecx
adc ebx, esi
mov eax, dword [ebp - 0x80]
cdq
mov ecx, 0xa498d8cd
sub ecx, eax
mov eax, 0xfff398ad
sbb eax, edx
add ecx, edi
adc eax, ebx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], eax
jmp 0x10008d3c
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, dword [0x100431b0]
mov esi, dword [0x100431b4]
sub ecx, eax
sbb esi, edx
mov dword [0x100431b0], ecx
mov dword [0x100431b4], esi
jmp 0x10008d58
movsx edx, word [0x10043180]
test edx, edx
je 0x10008d58
imul eax, dword [0x100431d4], 0x1f34
mov dword [0x10043174], eax
mov ecx, dword [0x10043cbc]
mov dword [ebp - 0xe8], ecx
mov edx, 1
mov word [ebp - 0x18], dx
mov ecx, dword [0x100431c8]
mov edx, dword [0x100431cc]
mov dword [ebp - 0x670], edx
mov eax, dword [ebp - 0x38]
cdq
sub eax, ecx
mov dword [ebp - 0x38], eax
movsx eax, word [ebp - 0x18]
mov dword [ebp - 0x504], eax
cmp dword [ebp - 0x504], 0
je 0x10008d9d
jmp 0x10008db0
mov byte [0x1004300b], 0x26
mov ecx, 0xa
mov word [0x10043184], cx
mov edx, dword [ebp - 0xe8]
add edx, 0x46e
mov dword [ebp - 0x2d8], edx
movzx eax, word [ebp - 0x1c]
cdq
mov dword [ebp - 0x580], eax
mov dword [ebp - 0x57c], edx
mov eax, dword [0x100431c0]
cmp eax, dword [ebp - 0x580]
jne 0x10008df0
mov ecx, dword [0x100431c4]
cmp ecx, dword [ebp - 0x57c]
jne 0x10008df0
jmp 0x10008e0a
movsx edx, byte [0x10043093]
imul eax, edx, 0xded86474
xor ecx, ecx
mov dword [0x10043128], eax
mov dword [0x1004312c], ecx
mov edx, dword [ebp - 0xe8]
add edx, 0x4af
mov dword [ebp - 0x2dc], edx
movsx eax, word [ebp - 0x30]
shl eax, 8
cdq
mov dword [0x100431b0], eax
mov dword [0x100431b4], edx
mov eax, dword [ebp - 0xe8]
add eax, 0x4ea
mov dword [ebp - 0x3d4], eax
mov dword [ebp - 4], 4
cmp dword [0x10043120], 0x433a
ja 0x10008e61
mov ecx, dword [0x10043cbc]
mov dword [0x1004318c], ecx
jmp 0x10008e9d
mov edx, 0x2d2f
mov word [ebp - 0x34], dx
mov eax, dword [0x100431d4]
cdq
mov ecx, dword [0x10043150]
mov esi, dword [0x10043154]
not ecx
not esi
sub ecx, eax
sbb esi, edx
movsx edx, word [ebp - 0x18]
movsx eax, word [ebp - 0x20]
sub eax, edx
cdq
push esi
push ecx
push edx
push eax
call fcn.10023240
mov dword [0x1004318c], eax
jmp 0x10008ec2
mov dword [ebp - 4], 0xffffffff
jmp 0x10008ed2
xor eax, eax
mov byte [ebp - 0xa3], al
lea ecx, [ebp - 0xa3]
call fcn.10002620
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x16c]
call fcn.10019740
mov ecx, dword [ebp - 0x16c]
push ecx
push 0
push 0
call fcn.10001620
call eax
mov dword [ebp - 0x380], eax
mov edx, 0x16ea
mov word [0x10043170], dx
mov eax, dword [ebp - 0x170]
and eax, dword [ebp - 0x170]
mov ecx, 0x24
sub ecx, dword [ebp - 0x508]
cmp ecx, eax
je 0x1000909a
mov edx, dword [ebp - 0x50]
or edx, dword [ebp - 0x4c]
jne 0x10008f4d
mov dword [ebp - 0x174], 1
jmp 0x10008f57
mov dword [ebp - 0x174], 0
movsx eax, byte [ebp - 0x12]
test eax, eax
jne 0x10008f6b
mov dword [ebp - 0x178], 1
jmp 0x10008f75
mov dword [ebp - 0x178], 0
mov ecx, dword [ebp - 0x174]
sub ecx, dword [ebp - 0x178]
and ecx, dword [ebp - 0x90]
mov word [0x10043158], cx
mov edx, dword [0x100431c0]
or edx, dword [0x100431c4]
je 0x10008fbe
mov eax, dword [0x100431b0]
mov ecx, dword [0x100431b4]
xor eax, dword [ebp - 0x44]
xor ecx, dword [ebp - 0x40]
add eax, dword [ebp - 0x44]
adc ecx, dword [ebp - 0x40]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], ecx
jmp 0x1000905b
movzx edx, byte [0x10043033]
test edx, edx
je 0x10008fee
mov eax, dword [ebp - 0x38]
sub eax, 0xeaa
mov word [ebp - 0x20], ax
mov ecx, dword [ebp - 0x3c]
xor edx, edx
add ecx, dword [ebp - 0x44]
adc edx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x44]
adc edx, dword [ebp - 0x40]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edx
jmp 0x1000905b
movzx eax, word [ebp - 0x1c]
test eax, eax
jne 0x10009002
mov dword [ebp - 0x17c], 1
jmp 0x1000900c
mov dword [ebp - 0x17c], 0
movsx ecx, word [ebp - 0x20]
cmp ecx, dword [ebp - 0x17c]
jne 0x1000905b
mov eax, dword [ebp - 0x94]
cdq
mov ecx, dword [0x10043168]
mov esi, dword [0x1004316c]
add ecx, eax
adc esi, edx
mov edx, dword [0x10043168]
mov eax, dword [0x1004316c]
sub edx, ecx
sbb eax, esi
mov dword [0x10043168], edx
mov dword [0x1004316c], eax
xor ecx, ecx
mov dword [0x100431c8], 0xf53c3b75
mov dword [0x100431cc], ecx
cmp dword [ebp - 0x380], 0
jne 0x1000909a
xor eax, eax
mov byte [ebp - 0xa4], al
lea ecx, [ebp - 0xa4]
call fcn.100034a0
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x180]
call fcn.10019900
mov ecx, dword [ebp - 0x180]
push ecx
push 0
push 0
call fcn.10001380
call eax
mov edx, dword [ebp - 0x38]
mov word [ebp - 0x28], dx
xor eax, eax
mov byte [ebp - 0xa5], al
lea ecx, [ebp - 0xa5]
call fcn.10003590
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x184]
call fcn.100198c0
mov ecx, dword [ebp - 0x184]
push ecx
push 0
push 0
call fcn.10001620
call eax
mov dword [ebp - 0x384], eax
mov edx, dword [0x100431c0]
xor edx, 0xb88ca2af
mov byte [ebp - 0x29], dl
mov eax, dword [ebp - 0x84]
mov ecx, dword [0x10043120]
xor edx, edx
add ecx, dword [ebp - 0x88]
adc edx, eax
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x188]
add eax, dword [ebp - 0x188]
cmp eax, 0x19a
je 0x1000967c
mov ecx, dword [0x100431d0]
add ecx, 0xea3
mov byte [ebp - 0x12], cl
cmp dword [ebp - 0x384], 0
jne 0x1000967c
mov eax, dword [0x100431d4]
cdq
mov ecx, dword [0x100431a0]
mov esi, dword [0x100431a4]
mov dword [ebp - 0x588], ecx
mov dword [ebp - 0x584], esi
mov dword [ebp - 0x590], eax
mov dword [ebp - 0x58c], edx
mov edx, dword [ebp - 0x584]
cmp edx, dword [ebp - 0x58c]
jg 0x1000918f
jl 0x10009183
mov eax, dword [ebp - 0x588]
cmp eax, dword [ebp - 0x590]
ja 0x1000918f
mov dword [ebp - 0x18c], 1
jmp 0x10009199
mov dword [ebp - 0x18c], 0
mov ecx, dword [0x100431a0]
mov edx, dword [0x100431a4]
mov dword [ebp - 0x598], ecx
mov dword [ebp - 0x594], edx
cmp dword [ebp - 0x594], 0
jg 0x100091d1
jl 0x100091c5
cmp dword [ebp - 0x598], 0x47
ja 0x100091d1
mov dword [ebp - 0x190], 1
jmp 0x100091db
mov dword [ebp - 0x190], 0
mov eax, dword [ebp - 0x18c]
cmp eax, dword [ebp - 0x190]
jne 0x1000920e
mov ecx, dword [0x10043cbc]
xor edx, edx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], edx
mov eax, 0x431f9270
sub eax, dword [ebp - 0x3c]
mov ecx, 0xffff4b53
sub ecx, eax
mov byte [0x10043112], cl
jmp 0x10009231
mov edx, dword [0x10043160]
not edx
test edx, edx
je 0x10009231
movsx eax, byte [ebp - 0x11]
cdq
mov ecx, eax
add ecx, dword [0x100431c0]
movsx eax, byte [ebp - 0x11]
cdq
xor eax, ecx
mov byte [ebp - 0x11], al
movsx edx, word [ebp - 0x30]
movzx eax, word [0x10043170]
cmp eax, edx
je 0x1000924c
mov dword [ebp - 0x194], 1
jmp 0x10009256
mov dword [ebp - 0x194], 0
movsx ecx, byte [ebp - 0x11]
cmp ecx, dword [ebp - 0x194]
jne 0x1000926e
mov dword [ebp - 0x198], 1
jmp 0x10009278
mov dword [ebp - 0x198], 0
cmp dword [ebp - 0x198], 0xbd85
jle 0x100092a7
movsx edx, word [0x10043180]
shl edx, 6
mov word [0x10043180], dx
mov eax, dword [0x10043120]
sub eax, 0x3600
mov ecx, dword [ebp - 0x38]
and ecx, eax
mov dword [ebp - 0x38], ecx
mov edx, dword [0x10043cbc]
mov dword [ebp - 0xf0], edx
mov dword [ebp - 4], 6
jmp 0x100092cb
jmp 0x100092e8
mov dword [ebp - 4], 0xffffffff
jmp 0x100092f8
mov edx, dword [ebp - 0xf0]
add edx, 0x4c6
mov dword [ebp - 0x1b8], edx
mov dword [ebp - 0xec], 0x34
mov eax, dword [0x10043128]
mov ecx, dword [0x1004312c]
mov dword [ebp - 0x5a0], eax
mov dword [ebp - 0x59c], ecx
mov edx, dword [ebp - 0x5a0]
or edx, dword [ebp - 0x59c]
je 0x10009345
movzx eax, word [ebp - 0x24]
mov dword [ebp - 0x19c], eax
jmp 0x10009352
movzx ecx, byte [0x1004305b]
mov dword [ebp - 0x19c], ecx
mov dl, byte [ebp - 0x19c]
mov byte [0x1004305b], dl
mov eax, dword [ebp - 0x50]
sub eax, 0x9114
mov ecx, dword [ebp - 0x4c]
sbb ecx, 0
mov dword [0x100431b0], eax
mov dword [0x100431b4], ecx
movzx edx, word [ebp - 0x34]
movsx eax, byte [0x10043112]
xor eax, edx
mov byte [0x10043112], al
mov eax, dword [ebp - 0x48]
cdq
mov ecx, eax
sub ecx, 0x748049f1
movsx eax, word [0x10043180]
cdq
or eax, ecx
mov word [0x10043180], ax
mov edx, dword [ebp - 0xec]
add edx, 1
mov dword [ebp - 0xec], edx
cmp dword [ebp - 0xec], 0x400
jl 0x10009377
mov eax, dword [ebp - 0xf0]
add eax, 0x463
mov dword [ebp - 0x678], eax
mov ecx, dword [ebp - 0xf0]
add ecx, 0x290
mov dword [ebp - 0x67c], ecx
mov edx, dword [0x10043174]
xor eax, eax
mov ecx, dword [0x100431a8]
not ecx
mov esi, dword [0x100431ac]
not esi
mov dword [ebp - 0x5a8], ecx
mov dword [ebp - 0x5a4], esi
mov dword [ebp - 0x5b0], edx
mov dword [ebp - 0x5ac], eax
mov edx, dword [ebp - 0x5a8]
cmp edx, dword [ebp - 0x5b0]
jne 0x1000943b
mov eax, dword [ebp - 0x5a4]
cmp eax, dword [ebp - 0x5ac]
jne 0x1000943b
mov dword [ebp - 0x1a0], 1
jmp 0x10009445
mov dword [ebp - 0x1a0], 0
movsx ecx, word [ebp - 0x20]
movsx edx, byte [ebp - 0x12]
cmp edx, ecx
jle 0x1000945d
mov dword [ebp - 0x1a4], 1
jmp 0x10009467
mov dword [ebp - 0x1a4], 0
mov eax, dword [ebp - 0x1a0]
cmp eax, dword [ebp - 0x1a4]
jle 0x100095f9
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x70]
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0x5b8], eax
mov dword [ebp - 0x5b4], esi
mov dword [ebp - 0x5c0], ecx
mov dword [ebp - 0x5bc], edx
mov ecx, dword [ebp - 0x5b8]
cmp ecx, dword [ebp - 0x5c0]
jne 0x100094c5
mov edx, dword [ebp - 0x5b4]
cmp edx, dword [ebp - 0x5bc]
jne 0x100094c5
mov dword [ebp - 0x1a8], 1
jmp 0x100094cf
mov dword [ebp - 0x1a8], 0
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x5c8], eax
mov dword [ebp - 0x5c4], ecx
cmp dword [ebp - 0x5c8], 0x5c
jne 0x100094ff
cmp dword [ebp - 0x5c4], 0
jne 0x100094ff
mov dword [ebp - 0x1ac], 1
jmp 0x10009509
mov dword [ebp - 0x1ac], 0
mov edx, dword [ebp - 0x1a8]
cmp edx, dword [ebp - 0x1ac]
je 0x10009524
mov eax, dword [0x10043cbc]
mov dword [ebp - 0x38], eax
jmp 0x100095f7
mov ecx, 0xffffffa4
test ecx, ecx
je 0x10009542
cmp dword [0x10043138], 0
je 0x10009542
mov dword [ebp - 0x1b0], 1
jmp 0x1000954c
mov dword [ebp - 0x1b0], 0
movsx eax, byte [0x10043093]
cdq
mov ecx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x74]
mov dword [ebp - 0x5d0], ecx
mov dword [ebp - 0x5cc], esi
mov dword [ebp - 0x5d8], eax
mov dword [ebp - 0x5d4], edx
mov edx, dword [ebp - 0x5cc]
cmp edx, dword [ebp - 0x5d4]
ja 0x1000959c
jb 0x10009590
mov eax, dword [ebp - 0x5d0]
cmp eax, dword [ebp - 0x5d8]
jae 0x1000959c
mov dword [ebp - 0x1b4], 1
jmp 0x100095a6
mov dword [ebp - 0x1b4], 0
mov ecx, dword [ebp - 0x1b0]
not ecx
cmp ecx, dword [ebp - 0x1b4]
jg 0x100095f7
mov edx, dword [0x10043128]
mov eax, dword [0x1004312c]
mov dword [ebp - 0x680], eax
sub edx, 0x6d
mov word [ebp - 0x18], dx
movzx eax, word [0x10043158]
cdq
push 0x2b227
push 0xfb40e4ea
push edx
push eax
call fcn.10023240
mov ecx, dword [ebp - 0x50]
sub ecx, eax
mov eax, dword [ebp - 0x4c]
sbb eax, edx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], eax
jmp 0x10009626
mov ecx, dword [0x10043174]
add ecx, 0x3eab
xor edx, edx
push edx
push ecx
mov eax, dword [0x1004311c]
push eax
mov ecx, dword [0x10043118]
push ecx
call fcn.10023240
mov dword [0x10043118], eax
mov dword [0x1004311c], edx
mov edx, dword [ebp - 0x1b8]
add edx, 0x1b9
cmp edx, dword [ebp - 0x1b8]
je 0x1000967c
movzx eax, word [ebp - 0x24]
and eax, 0xea4
mov byte [ebp - 0x11], al
xor ecx, ecx
mov byte [ebp - 0xa6], cl
lea ecx, [ebp - 0xa6]
call fcn.10003d10
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x1bc]
call fcn.10019800
mov edx, dword [ebp - 0x1bc]
push edx
push 0
push 0
call fcn.10001380
call eax
mov dword [ebp - 4], 8
jmp 0x100096a8
mov dword [ebp - 4], 0xffffffff
jmp 0x100096b8
xor edx, edx
mov byte [ebp - 0xa7], dl
lea ecx, [ebp - 0xa7]
call fcn.10003e00
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0x1c0]
call fcn.100196c0
mov eax, dword [ebp - 0x1c0]
push eax
push 0
push 0
call fcn.10001620
call eax
mov dword [ebp - 0x684], eax
mov ecx, dword [0x10043cbc]
xor edx, edx
mov dword [0x100431a0], ecx
mov dword [0x100431a4], edx
mov dword [ebp - 0xf4], 0x22f6
movzx eax, word [ebp - 0x1c]
imul ecx, eax, 0xc0
movsx edx, word [0x10043180]
imul edx, ecx
mov word [0x10043180], dx
movzx eax, byte [0x1004300b]
sub eax, 0x74a9e5ea
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0xf4], 0x21d1
jle 0x10009759
mov ecx, dword [ebp - 0xf4]
sub ecx, 1
mov dword [ebp - 0xf4], ecx
jmp 0x1000973c
mov edx, dword [0x10043cbc]
mov dword [ebp - 0xf8], edx
movsx eax, word [ebp - 0x20]
cmp eax, dword [0x1004318c]
jle 0x100097c5
mov dword [ebp - 4], 0xa
movsx ecx, byte [ebp - 0x29]
imul ecx, dword [0x10043188]
movsx edx, byte [ebp - 0x29]
imul edx, ecx
mov byte [ebp - 0x29], dl
mov eax, 8
imul ecx, eax, 0x28
mov dl, byte [ecx + 0x10381c50]
mov byte [ebp - 0x12], dl
jmp 0x100097b3
mov dword [ebp - 4], 0xffffffff
jmp 0x100097c3
jmp 0x10009838
movsx ecx, byte [0x1004310e]
test ecx, ecx
jne 0x100097dc
mov dword [ebp - 0x1c4], 1
jmp 0x100097e6
mov dword [ebp - 0x1c4], 0
mov esi, dword [ebp - 0x38]
sub esi, dword [0x10043164]
add esi, dword [ebp - 0x1c4]
mov ecx, dword [0x10043138]
xor edi, edi
mov eax, dword [ebp - 0x38]
cdq
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x388], esi
mov esi, dword [ebp - 0x54]
xor ebx, eax
xor esi, edx
push edi
push ecx
push esi
push ebx
call fcn.10023240
mov esi, dword [ebp - 0x388]
add eax, esi
mov word [0x10043184], ax
imul edx, dword [0x10043138], 0xfd93
mov byte [0x1004300a], dl
mov eax, dword [ebp - 0xf8]
add eax, 0x3be
mov dword [ebp - 0x38c], eax
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x688], edx
push ecx
push 1
push 1
call fcn.1001cea0
mov word [ebp - 0x24], ax
movzx eax, word [ebp - 0x24]
test eax, eax
je 0x1000992e
movzx eax, byte [0x1004310f]
cdq
mov ecx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x5e0], ecx
mov dword [ebp - 0x5dc], esi
mov dword [ebp - 0x5e8], eax
mov dword [ebp - 0x5e4], edx
mov edx, dword [ebp - 0x5e0]
cmp edx, dword [ebp - 0x5e8]
jne 0x100098bc
mov eax, dword [ebp - 0x5dc]
cmp eax, dword [ebp - 0x5e4]
jne 0x100098bc
mov ecx, dword [ebp - 0x38]
add ecx, 1
mov dword [ebp - 0x38], ecx
jmp 0x10009929
movsx edx, word [ebp - 0x28]
imul eax, edx, 0
test eax, eax
jne 0x100098db
xor ecx, ecx
mov dword [ebp - 0x334], 1
mov dword [ebp - 0x330], ecx
jmp 0x100098e6
xorps xmm0, xmm0
movlpd qword [ebp - 0x334], xmm0
mov ecx, dword [0x10043190]
mov esi, dword [0x10043194]
movsx eax, word [ebp - 0x30]
cdq
push esi
push ecx
push edx
push eax
call fcn.10023240
mov ecx, dword [ebp - 0x334]
sub ecx, eax
mov eax, dword [ebp - 0x330]
sbb eax, edx
mov edx, dword [ebp - 0x38]
or edx, dword [ebp - 0x3c]
add edx, 0x37
xor esi, esi
push eax
push ecx
push esi
push edx
call fcn.10023240
not eax
mov dword [ebp - 0x3c], eax
jmp 0x10009a0e
movzx eax, word [ebp - 0x1c]
test eax, eax
jne 0x10009942
mov dword [ebp - 0x1c8], 1
jmp 0x1000994c
mov dword [ebp - 0x1c8], 0
cmp dword [ebp - 0x1c8], 0xfc
jle 0x10009964
mov dword [ebp - 0x1cc], 1
jmp 0x1000996e
mov dword [ebp - 0x1cc], 0
movzx ecx, word [ebp - 0x24]
mov edx, dword [0x100431d4]
not edx
cmp edx, ecx
jge 0x1000998a
mov dword [ebp - 0x1d0], 1
jmp 0x10009994
mov dword [ebp - 0x1d0], 0
mov eax, dword [ebp - 0x1cc]
not eax
cmp eax, dword [ebp - 0x1d0]
jge 0x100099b0
mov dword [ebp - 0x1d4], 1
jmp 0x100099ba
mov dword [ebp - 0x1d4], 0
mov ecx, dword [ebp - 0x1d4]
not ecx
test ecx, ecx
je 0x10009a0e
mov edx, 2
imul eax, edx, 0x4f
movsx eax, word [eax + 0x1028e3f8]
cdq
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], esi
mov ecx, dword [0x10043168]
mov edx, dword [0x1004316c]
mov dword [ebp - 0x68c], edx
add ecx, 0x201a
movsx eax, word [0x100431b8]
cdq
sub eax, ecx
mov word [0x100431b8], ax
mov eax, dword [ebp - 0xf8]
add eax, 0x584
mov dword [ebp - 0x690], eax
push 0x18
call fcn.1001bd00
mov word [ebp - 0x1c], ax
cmp dword [0x10043160], 0
jne 0x10009a48
mov ecx, 0xffffe655
test ecx, ecx
jne 0x10009a48
mov dword [ebp - 0x1d8], 0
jmp 0x10009a52
mov dword [ebp - 0x1d8], 1
mov eax, dword [0x100431d4]
cdq
mov ecx, dword [ebp - 0x88]
mov esi, dword [ebp - 0x84]
mov dword [ebp - 0x5f0], ecx
mov dword [ebp - 0x5ec], esi
mov dword [ebp - 0x5f8], eax
mov dword [ebp - 0x5f4], edx
mov edx, dword [ebp - 0x5ec]
cmp edx, dword [ebp - 0x5f4]
jl 0x10009aa6
jg 0x10009a9a
mov eax, dword [ebp - 0x5f0]
cmp eax, dword [ebp - 0x5f8]
jb 0x10009aa6
mov dword [ebp - 0x1dc], 1
jmp 0x10009ab0
mov dword [ebp - 0x1dc], 0
mov ecx, dword [ebp - 0x1d8]
cmp ecx, dword [ebp - 0x1dc]
jne 0x10009aca
mov dword [ebp - 0x1e0], 1
jmp 0x10009ad4
mov dword [ebp - 0x1e0], 0
mov ecx, dword [0x10043178]
mov esi, dword [0x1004317c]
movzx eax, word [ebp - 0x34]
cdq
mov dword [ebp - 0x600], eax
mov dword [ebp - 0x5fc], edx
mov dword [ebp - 0x608], ecx
mov dword [ebp - 0x604], esi
mov edx, dword [ebp - 0x600]
cmp edx, dword [ebp - 0x608]
jne 0x10009b19
mov eax, dword [ebp - 0x5fc]
cmp eax, dword [ebp - 0x604]
je 0x10009b2d
xor ecx, ecx
mov dword [ebp - 0x33c], 1
mov dword [ebp - 0x338], ecx
jmp 0x10009b38
xorps xmm0, xmm0
movlpd qword [ebp - 0x33c], xmm0
mov edx, dword [ebp - 0x44]
cmp edx, dword [ebp - 0x33c]
jne 0x10009b4e
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x338]
je 0x10009b5a
mov dword [ebp - 0x1e4], 1
jmp 0x10009b64
mov dword [ebp - 0x1e4], 0
mov ecx, dword [ebp - 0x1e0]
cmp ecx, dword [ebp - 0x1e4]
jne 0x10009bbe
movzx edx, byte [0x1004300b]
test edx, edx
jne 0x10009b91
xor eax, eax
mov dword [ebp - 0x3dc], 1
mov dword [ebp - 0x3d8], eax
jmp 0x10009b9c
xorps xmm0, xmm0
movlpd qword [ebp - 0x3dc], xmm0
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0x694], edx
mov eax, dword [ebp - 0x3dc]
sub eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x10009c22
movzx ecx, word [0x10043170]
not ecx
test ecx, ecx
je 0x10009c22
movsx edx, word [0x10043184]
sub edx, 0x3130678c
xor eax, eax
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
push eax
push edx
push esi
push ecx
call fcn.10023240
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
movsx edx, word [ebp - 0x30]
test edx, edx
jne 0x10009c03
mov dword [ebp - 0x1e8], 1
jmp 0x10009c0d
mov dword [ebp - 0x1e8], 0
movzx eax, word [ebp - 0x1c]
xor ecx, ecx
sub ecx, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0x1e8]
sub ecx, eax
mov word [ebp - 0x1c], cx
mov edx, dword [ebp - 0xf8]
add edx, 0x43a
mov dword [ebp - 0x1ec], edx
mov eax, dword [ebp - 0x1ec]
add eax, 0x17d
mov ecx, dword [ebp - 0x38c]
sub ecx, 0x131
imul ecx, eax
cmp dword [ebp - 0x1ec], ecx
je 0x10009cf3
movzx eax, word [0x10043170]
cdq
push edx
push eax
push 0
push 0x54
push 0
push 0x8c
mov eax, dword [ebp - 0x38]
cdq
push edx
push eax
mov edx, dword [ebp - 0x7c]
xor eax, eax
push eax
push edx
call fcn.1001cb70
mov dword [0x10043188], eax
cmp dword [0x10043188], 0
je 0x10009c9f
mov ecx, dword [0x10043174]
xor edx, edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edx
jmp 0x10009cbd
movzx eax, word [ebp - 0x34]
not eax
test eax, eax
je 0x10009cbd
movzx ecx, word [0x10043170]
imul edx, ecx, 0x9f
mov word [0x10043184], dx
xor eax, eax
mov byte [ebp - 0xa2], al
lea ecx, [ebp - 0xa2]
call fcn.10004010
mov dword [ebp - 0x1f0], eax
mov ecx, dword [ebp - 0x1f0]
call fcn.10019680
mov ecx, dword [ebp - 0x1f0]
push ecx
push 0
push 0
call fcn.10001380
call eax
xor edx, edx
mov byte [ebp - 0xa8], dl
lea ecx, [ebp - 0xa8]
call fcn.100040f0
mov dword [ebp - 0x1f4], eax
mov ecx, dword [ebp - 0x1f4]
call fcn.100199c0
mov eax, dword [ebp - 0x1f4]
push eax
push 0
push 0
call fcn.10001620
call eax
mov dword [ebp - 0x390], eax
mov dword [ebp - 4], 0xc
jmp 0x10009de2
mov dword [ebp - 4], 0xffffffff
jmp 0x10009df2
cmp dword [ebp - 0x390], 0
jne 0x1000a274
mov ecx, 1
mov word [0x10043198], cx
movsx edx, word [ebp - 0x18]
movsx eax, byte [0x1004310e]
imul eax, edx
movsx ecx, byte [0x1004310e]
imul ecx, eax
mov byte [0x1004310e], cl
cmp dword [ebp - 0x80], 0
jne 0x10009e3b
mov dword [ebp - 0x200], 1
jmp 0x10009e45
mov dword [ebp - 0x200], 0
movzx edx, byte [0x1004300a]
test edx, edx
jne 0x10009e5c
mov dword [ebp - 0x204], 1
jmp 0x10009e66
mov dword [ebp - 0x204], 0
mov eax, dword [ebp - 0x200]
imul eax, dword [ebp - 0x204]
movzx ecx, byte [0x10043032]
mov edx, dword [ebp - 0x80]
add edx, ecx
imul edx, eax
not edx
mov eax, edx
cdq
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
movzx eax, word [0x10043198]
mov dword [ebp - 0x208], eax
cmp dword [ebp - 0x208], 0
je 0x10009eae
cmp dword [ebp - 0x208], 1
je 0x10009ec3
jmp 0x10009f1c
movzx ecx, byte [0x1004305b]
xor ecx, 0x2154
mov byte [0x1004305a], cl
jmp 0x10009f1c
push 0
push 0xdb871118
mov edx, dword [0x10043134]
push edx
mov eax, dword [0x10043130]
push eax
call fcn.10023240
mov word [0x10043180], ax
movsx ecx, word [ebp - 0x18]
add ecx, dword [0x100431d4]
movsx eax, word [ebp - 0x18]
add eax, ecx
cdq
mov ecx, eax
mov esi, dword [ebp - 0x80]
sub esi, dword [0x10043188]
movzx eax, word [0x1004315c]
cdq
mov edx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x54]
mov dword [ebp - 0x69c], edi
sub edx, eax
add edx, esi
sub edx, ecx
mov word [ebp - 0x28], dx
jmp 0x10009f40
jmp 0x10009f73
jmp 0x10009f8d
jmp 0x10009f99
mov eax, dword [0x10043cbc]
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x3c], 0
jne 0x10009fb6
mov dword [ebp - 0x20c], 1
jmp 0x10009fc0
mov dword [ebp - 0x20c], 0
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x100]
add edx, 0x21f
mov dword [ebp - 0x394], edx
mov dword [ebp - 4], 0xe
mov byte [ebp - 4], 0xf
movzx eax, byte [0x10043032]
movzx ecx, word [0x10043158]
sub ecx, eax
not ecx
mov word [0x10043158], cx
mov edx, dword [0x100431c8]
mov eax, dword [0x100431cc]
xor edx, dword [ebp - 0x70]
xor eax, dword [ebp - 0x6c]
xor ecx, ecx
mov esi, dword [ebp - 0x50]
not esi
mov edi, dword [ebp - 0x4c]
not edi
sub esi, dword [0x10043188]
sbb edi, ecx
sub esi, edx
sbb edi, eax
mov dword [ebp - 0x3e4], esi
mov dword [ebp - 0x3e0], edi
mov edx, dword [ebp - 0x3e4]
or edx, dword [ebp - 0x3e0]
jne 0x1000a048
mov dword [ebp - 0x210], 1
jmp 0x1000a052
mov dword [ebp - 0x210], 0
movsx eax, word [ebp - 0x30]
sub eax, dword [ebp - 0x210]
cdq
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
jmp 0x1000a08e
mov dword [ebp - 4], 0xe
jmp 0x1000a09e
jmp 0x1000a0d1
mov dword [ebp - 4], 0xffffffff
jmp 0x1000a0e1
mov eax, dword [ebp - 0x100]
add eax, 0x515
mov dword [ebp - 0x6a0], eax
mov dword [ebp - 0xfc], 0x23
mov ecx, dword [0x100431b0]
mov edx, dword [0x100431b4]
sub ecx, dword [0x10043130]
sbb edx, dword [0x10043134]
mov eax, dword [0x100431b0]
mov esi, dword [0x100431b4]
and eax, ecx
and esi, edx
mov dword [0x100431b0], eax
mov dword [0x100431b4], esi
movzx ecx, word [0x10043198]
imul edx, ecx, 0x22aa6d27
mov word [ebp - 0x34], dx
cmp dword [0x100431d0], 0
je 0x1000a17a
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x6a4], eax
mov ecx, dword [ebp - 0x90]
xor edx, edx
mov eax, dword [ebp - 0x44]
not eax
mov edi, dword [ebp - 0x40]
not edi
push edx
push ecx
push edi
push eax
call fcn.10023240
sub eax, esi
not eax
mov byte [0x1004305b], al
jmp 0x1000a194
movsx ecx, word [ebp - 0x18]
movsx edx, byte [ebp - 0x12]
not edx
cmp edx, ecx
jle 0x1000a194
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp - 0xfc]
add edx, 1
mov dword [ebp - 0xfc], edx
cmp dword [ebp - 0xfc], 0x2153
jl 0x1000a13f
mov eax, dword [ebp - 0x100]
add eax, 0x4c7
mov dword [ebp - 0x398], eax
mov ecx, dword [str.KeyValue]
mov dword [ebp - 0x630], ecx
mov edx, dword [0x10035628]
mov dword [ebp - 0x62c], edx
mov eax, dword [0x1003562c]
mov dword [ebp - 0x628], eax
mov ecx, dword [0x10035630]
mov dword [ebp - 0x624], ecx
mov dx, word [0x10035634]
mov word [ebp - 0x620], dx
lea eax, [ebp - 0x630]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [0x1004318c], eax
mov ecx, dword [ebp - 0x394]
xor ecx, 0x127
mov edx, 0xd0
sub edx, dword [ebp - 0x398]
cmp edx, ecx
je 0x1000a274
movsx eax, byte [ebp - 0x12]
mov ecx, dword [0x10043188]
add ecx, eax
xor edx, edx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
xor eax, eax
mov byte [ebp - 0x95], al
lea ecx, [ebp - 0x95]
call fcn.10004390
mov dword [ebp - 0x214], eax
mov ecx, dword [ebp - 0x214]
call fcn.10019940
mov ecx, dword [ebp - 0x214]
push ecx
push 0
push 0
call fcn.10001380
call eax
movzx edx, word [0x10043130]
push edx
call fcn.1001c420
mov word [ebp - 0x18], ax
movsx eax, word [ebp - 0x18]
test eax, eax
jle 0x1000a2a9
mov ecx, dword [0x10043118]
or ecx, dword [0x1004311c]
je 0x1000a2a4
mov edx, 0x11dc
mov word [ebp - 0x1c], dx
jmp 0x1000a34f
mov eax, 0x5b
test eax, eax
je 0x1000a2c7
cmp dword [ebp - 0x94], 0
je 0x1000a2c7
mov dword [ebp - 0x218], 1
jmp 0x1000a2d1
mov dword [ebp - 0x218], 0
mov ecx, dword [0x100431b0]
mov esi, dword [0x100431b4]
mov eax, dword [ebp - 0x48]
cdq
mov dword [ebp - 0x3ec], eax
mov dword [ebp - 0x3e8], edx
mov dword [ebp - 0x3f4], ecx
mov dword [ebp - 0x3f0], esi
mov edx, dword [ebp - 0x3ec]
cmp edx, dword [ebp - 0x3f4]
jne 0x1000a315
mov eax, dword [ebp - 0x3e8]
cmp eax, dword [ebp - 0x3f0]
je 0x1000a321
mov dword [ebp - 0x21c], 1
jmp 0x1000a32b
mov dword [ebp - 0x21c], 0
mov ecx, dword [ebp - 0x218]
cmp ecx, dword [ebp - 0x21c]
jne 0x1000a345
mov dword [ebp - 0x220], 1
jmp 0x1000a34f
mov dword [ebp - 0x220], 0
xor eax, eax
mov byte [ebp - 0x96], al
lea ecx, [ebp - 0x96]
call fcn.10004600
mov dword [ebp - 0x224], eax
mov ecx, dword [ebp - 0x224]
call fcn.10019700
mov ecx, dword [ebp - 0x224]
push ecx
push 0
push 0
call fcn.10001620
call eax
mov dword [ebp - 0x3a0], eax
mov byte [0x1004300a], 4
movzx edx, byte [0x1004300a]
mov dword [ebp - 0x228], edx
cmp dword [ebp - 0x228], 4
ja case.0x1000a3b2.1
mov eax, dword [ebp - 0x228]
jmp dword [eax*4 + 0x1000c1ac]
mov ecx, dword [0x100431c8]
mov edx, dword [0x100431cc]
sub ecx, 0xdfedc8f7
sbb edx, 0x48563
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], edx
jmp case.0x1000a3b2.1
movsx eax, byte [0x1004310e]
mov ecx, dword [0x10043138]
sub ecx, eax
mov dword [0x10043138], ecx
movzx edx, word [0x1004315c]
sub edx, dword [ebp - 0x3c]
movzx eax, word [0x1004315c]
sub eax, edx
mov word [0x1004315c], ax
jmp case.0x1000a3b2.1
mov ecx, dword [0x10043178]
mov edx, dword [0x1004317c]
sub ecx, dword [ebp - 0x50]
sbb edx, dword [ebp - 0x4c]
mov dword [0x10043178], ecx
mov dword [0x1004317c], edx
jmp case.0x1000a3b2.1
movzx eax, word [0x1004315c]
sub eax, 0x50
mov dword [0x100431d4], eax
mov ecx, 0x280e
mov word [ebp - 0x1c], cx
mov edx, dword [ebp - 0x22c]
imul edx, dword [ebp - 0x39c]
imul eax, dword [ebp - 0x22c], 0x19f
add eax, edx
cmp eax, 0x126
je 0x1000a940
push 0
push 0x96
push 0
push 0
movsx eax, word [ebp - 0x20]
cdq
push edx
push eax
movzx eax, word [0x10043170]
cdq
push edx
push eax
push 0
push 0
call fcn.1001c030
mov word [ebp - 0x24], ax
movzx ecx, word [ebp - 0x24]
test ecx, ecx
jne 0x1000a4ee
mov edx, 0x8ed5c9c9
sub edx, dword [ebp - 0x90]
jne 0x1000a4b9
xor eax, eax
mov dword [ebp - 0x31c], 1
mov dword [ebp - 0x318], eax
jmp 0x1000a4c4
xorps xmm0, xmm0
movlpd qword [ebp - 0x31c], xmm0
mov ecx, dword [ebp - 0x31c]
mov edx, dword [ebp - 0x318]
mov dword [0x10043190], ecx
mov dword [0x10043194], edx
movsx eax, word [ebp - 0x20]
sub eax, 0x10de
cdq
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
jmp 0x1000a4fd
movzx eax, word [ebp - 0x34]
cdq
add eax, 0xad3f3b3
mov byte [0x10043093], al
movsx eax, word [0x10043184]
sub eax, 0x17389d88
xor ecx, ecx
mov edx, dword [0x100431c8]
mov esi, dword [0x100431cc]
add edx, eax
adc esi, ecx
mov dword [0x100431c8], edx
mov dword [0x100431cc], esi
cmp dword [ebp - 0x3a0], 0
jne 0x1000a940
movzx eax, byte [0x1004300b]
not eax
test eax, eax
jne 0x1000a553
cmp dword [ebp - 0x48], 0
jne 0x1000a553
mov dword [ebp - 0x234], 0
jmp 0x1000a55d
mov dword [ebp - 0x234], 1
mov eax, dword [0x100431d0]
cdq
mov dword [ebp - 0x3fc], eax
mov dword [ebp - 0x3f8], edx
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp - 0x3f8]
jg 0x1000a593
jl 0x1000a587
mov edx, dword [ebp - 0x50]
cmp edx, dword [ebp - 0x3fc]
ja 0x1000a593
mov dword [ebp - 0x230], 1
jmp 0x1000a59d
mov dword [ebp - 0x230], 0
mov eax, dword [ebp - 0x230]
not eax
cmp dword [ebp - 0x234], eax
je 0x1000a5b9
mov dword [ebp - 0x238], 1
jmp 0x1000a5c3
mov dword [ebp - 0x238], 0
mov ecx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
movsx eax, byte [ebp - 0x11]
cdq
mov dword [ebp - 0x404], eax
mov dword [ebp - 0x400], edx
mov dword [ebp - 0x40c], ecx
mov dword [ebp - 0x408], esi
mov edx, dword [ebp - 0x400]
cmp edx, dword [ebp - 0x408]
ja 0x1000a618
jb 0x1000a604
mov eax, dword [ebp - 0x404]
cmp eax, dword [ebp - 0x40c]
ja 0x1000a618
xor ecx, ecx
mov dword [ebp - 0x324], 1
mov dword [ebp - 0x320], ecx
jmp 0x1000a623
xorps xmm0, xmm0
movlpd qword [ebp - 0x324], xmm0
mov ecx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
movsx eax, byte [ebp - 0x29]
cdq
add eax, ecx
adc edx, esi
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x410], edx
mov edx, dword [ebp - 0x324]
cmp edx, dword [ebp - 0x414]
jne 0x1000a666
mov eax, dword [ebp - 0x320]
cmp eax, dword [ebp - 0x410]
jne 0x1000a666
mov dword [ebp - 0x23c], 1
jmp 0x1000a670
mov dword [ebp - 0x23c], 0
mov ecx, dword [ebp - 0x238]
imul ecx, dword [ebp - 0x23c]
test ecx, ecx
jne 0x1000a765
movsx edx, word [ebp - 0x28]
movzx eax, byte [0x1004300a]
cmp eax, edx
jg 0x1000a6a0
mov dword [ebp - 0x240], 1
jmp 0x1000a6aa
mov dword [ebp - 0x240], 0
movzx ecx, byte [0x1004300a]
cmp ecx, 0x1e
jg 0x1000a6c2
mov dword [ebp - 0x244], 1
jmp 0x1000a6cc
mov dword [ebp - 0x244], 0
mov edx, dword [ebp - 0x240]
cmp edx, dword [ebp - 0x244]
je 0x1000a6ee
mov eax, 2
shl eax, 0
movzx ecx, word [eax + 0x100dd9b4]
mov dword [ebp - 0x38], ecx
jmp 0x1000a763
cmp dword [ebp - 0x48], 0
je 0x1000a763
movsx edx, word [ebp - 0x28]
movsx eax, byte [ebp - 0x12]
add eax, edx
jne 0x1000a714
xor ecx, ecx
mov dword [ebp - 0x314], 1
mov dword [ebp - 0x310], ecx
jmp 0x1000a71f
xorps xmm0, xmm0
movlpd qword [ebp - 0x314], xmm0
movsx edx, word [0x10043184]
not edx
movzx eax, byte [0x1004310f]
sub eax, edx
movsx esi, byte [ebp - 0x11]
xor esi, dword [0x10043174]
add esi, eax
mov ecx, dword [ebp - 0x310]
push ecx
mov edx, dword [ebp - 0x314]
push edx
mov eax, dword [0x10043134]
push eax
mov ecx, dword [0x10043130]
push ecx
call fcn.10023240
add eax, esi
mov word [ebp - 0x24], ax
jmp 0x1000a7b2
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x41c], edx
mov dword [ebp - 0x418], eax
mov ecx, dword [ebp - 0x41c]
or ecx, dword [ebp - 0x418]
je 0x1000a7b2
mov edx, dword [ebp - 0x90]
xor edx, 0x82
mov word [ebp - 0x1c], dx
mov eax, dword [0x10043168]
mov ecx, dword [0x1004316c]
add eax, dword [ebp - 0x44]
adc ecx, dword [ebp - 0x40]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], ecx
mov edx, dword [0x10043cbc]
mov dword [ebp - 0x104], edx
movsx ax, byte [ebp - 0x11]
mov word [0x10043184], ax
mov ecx, dword [0x10043190]
mov edx, dword [0x10043194]
mov dword [ebp - 0x6a8], edx
movsx eax, word [ebp - 0x28]
cdq
mov esi, eax
and esi, ecx
movsx eax, word [ebp - 0x28]
cdq
add eax, esi
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x104]
add eax, 0x53e
mov dword [ebp - 0x6bc], eax
movzx ecx, byte [0x10043033]
test ecx, ecx
je 0x1000a88a
mov dword [ebp - 4], 0x12
cmp dword [0x10043120], 0
je 0x1000a82a
movzx edx, byte [0x1004305a]
mov dword [ebp - 0x248], edx
jmp 0x1000a834
movsx eax, word [ebp - 0x20]
mov dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x248]
cdq
mov dword [0x10043168], eax
mov dword [0x1004316c], edx
movsx ecx, byte [0x10043112]
sub ecx, 0xb3
mov byte [0x10043112], cl
jmp 0x1000a878
mov dword [ebp - 4], 0xffffffff
jmp 0x1000a888
jmp 0x1000a8a4
cmp dword [0x10043174], 0
je 0x1000a8a4
mov eax, dword [ebp - 0x80]
and eax, dword [ebp - 0x48]
cdq
mov edx, 0x1d0beaa6
sub edx, eax
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x104]
add eax, 0x3be
mov dword [ebp - 0x3a8], eax
mov ecx, dword [ebp - 0x88]
mov esi, dword [ebp - 0x84]
movzx eax, byte [0x1004310f]
cdq
push esi
push ecx
push edx
push eax
call fcn.10023240
mov byte [0x1004310f], al
mov edx, dword [ebp - 0x104]
add edx, 0x1ba
mov dword [ebp - 0x3a4], edx
mov eax, dword [0x100431d0]
add eax, 0xa5
mov byte [0x10043093], al
imul ecx, dword [ebp - 0x3a4], 0x354
cmp dword [ebp - 0x3a8], ecx
je 0x1000a940
xor edx, edx
mov byte [ebp - 0x97], dl
lea ecx, [ebp - 0x97]
call fcn.100017c0
mov dword [ebp - 0x24c], eax
mov ecx, dword [ebp - 0x24c]
call fcn.10019640
mov eax, dword [ebp - 0x24c]
push eax
push 0
push 0
call fcn.10001380
call eax
mov dword [0x100431d0], 0
movsx ecx, byte [ebp - 0x12]
mov edx, dword [ebp - 0x7c]
sub edx, ecx
mov eax, dword [ebp - 0x7c]
sub eax, edx
mov dword [ebp - 0x7c], eax
mov ecx, dword [0x100431d0]
mov dword [ebp - 0x3ac], ecx
cmp dword [ebp - 0x3ac], 0
je 0x1000a972
jmp 0x1000a98c
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
push 0
push 0x4e11
push eax
push edx
call fcn.10023240
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
xor ecx, ecx
mov byte [ebp - 0x98], cl
lea ecx, [ebp - 0x98]
call fcn.100018a0
mov dword [ebp - 0x250], eax
mov ecx, dword [ebp - 0x250]
call fcn.10019a00
mov edx, dword [ebp - 0x250]
push edx
push 0
push 0
call fcn.10001620
call eax
mov dword [ebp - 0x3b4], eax
mov dword [ebp - 4], 0x14
push 4
push 0x64
push 0xda
call fcn.1001cea0
mov dword [ebp - 0x3b0], eax
mov eax, dword [ebp - 0x3b0]
xor ecx, ecx
mov dword [0x10043178], eax
mov dword [0x1004317c], ecx
mov edx, dword [0x10043178]
mov eax, dword [0x1004317c]
mov dword [ebp - 0x424], edx
mov dword [ebp - 0x420], eax
mov ecx, dword [ebp - 0x424]
or ecx, dword [ebp - 0x420]
je 0x1000aa27
mov dword [ebp - 0x254], 1
jmp 0x1000aa31
mov dword [ebp - 0x254], 0
mov edx, dword [0x10043178]
mov eax, dword [0x1004317c]
mov dword [ebp - 0x42c], edx
mov dword [ebp - 0x428], eax
cmp dword [ebp - 0x42c], 0x10
jne 0x1000aa5a
cmp dword [ebp - 0x428], 0
je 0x1000aa66
mov dword [ebp - 0x258], 1
jmp 0x1000aa70
mov dword [ebp - 0x258], 0
mov ecx, dword [ebp - 0x254]
cmp ecx, dword [ebp - 0x258]
jge 0x1000ab2a
push 0xca
call fcn.1001c420
mov word [ebp - 0xbe], ax
movsx eax, word [ebp - 0xbe]
cdq
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x44]
or edx, dword [ebp - 0x40]
je 0x1000ab0c
mov eax, dword [str.Object_is_incorrec]
mov dword [ebp - 0x61c], eax
mov ecx, dword [0x1003563c]
mov dword [ebp - 0x618], ecx
mov edx, dword [0x10035640]
mov dword [ebp - 0x614], edx
mov eax, dword [0x10035644]
mov dword [ebp - 0x610], eax
mov cx, word [0x10035648]
mov word [ebp - 0x60c], cx
mov dl, byte [0x1003564a]
mov byte [ebp - 0x60a], dl
lea eax, [ebp - 0x61c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [0x10043150], eax
mov dword [0x10043154], edx
jmp 0x1000ab25
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
not ecx
not edx
push 0
push 0
push edx
push ecx
call fcn.10023240
mov word [ebp - 0x1c], ax
jmp 0x1000ad02
cmp dword [ebp - 0x48], 0
je 0x1000abbe
movzx eax, word [ebp - 0x1c]
add eax, dword [ebp - 0x3c]
xor ecx, ecx
mov edx, dword [0x10043178]
mov esi, dword [0x1004317c]
sub edx, 0x16168e2d
sbb esi, 0x3cf75
push ecx
push eax
push esi
push edx
call fcn.10023240
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x430], edx
mov eax, dword [ebp - 0x434]
or eax, dword [ebp - 0x430]
jne 0x1000ab84
mov dword [ebp - 0x25c], 1
jmp 0x1000ab8e
mov dword [ebp - 0x25c], 0
movsx ecx, word [ebp - 0x30]
sub ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x25c]
sub eax, ecx
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
movzx eax, byte [0x10043032]
cdq
mov edx, dword [0x100431a8]
not edx
add edx, eax
mov dword [ebp - 0x48], edx
jmp 0x1000ad02
movzx eax, word [ebp - 0x24]
cdq
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x438], edx
mov eax, dword [0x100431a8]
cmp eax, dword [ebp - 0x43c]
jne 0x1000abee
mov ecx, dword [0x100431ac]
cmp ecx, dword [ebp - 0x438]
je 0x1000ac82
cmp dword [0x10043120], 0
jne 0x1000ac03
mov dword [ebp - 0x260], 1
jmp 0x1000ac0d
mov dword [ebp - 0x260], 0
movsx edx, word [0x10043180]
mov esi, dword [ebp - 0x90]
not esi
sub esi, edx
movzx eax, word [ebp - 0x34]
cdq
mov ecx, dword [0x10043134]
push ecx
mov ecx, dword [0x10043130]
push ecx
push edx
push eax
call fcn.10023240
mov ecx, eax
add ecx, esi
movsx edx, byte [0x10043093]
mov eax, dword [ebp - 0x260]
and eax, 0x4f98
imul eax, edx
cdq
sub eax, ecx
mov dword [ebp - 0x38], eax
mov eax, dword [0x10043188]
xor ecx, ecx
push ecx
push eax
mov edx, dword [0x100431ac]
push edx
mov eax, dword [0x100431a8]
push eax
call fcn.10023240
mov dword [0x100431a8], eax
mov dword [0x100431ac], edx
jmp 0x1000ad02
mov ecx, dword [0x100431c8]
mov edx, dword [0x100431cc]
mov dword [ebp - 0x444], ecx
mov dword [ebp - 0x440], edx
mov eax, dword [ebp - 0x444]
or eax, dword [ebp - 0x440]
jne 0x1000acc8
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x44c], ecx
mov dword [ebp - 0x448], edx
mov eax, dword [ebp - 0x44c]
or eax, dword [ebp - 0x448]
je 0x1000ad02
cmp dword [0x100431d0], 0
je 0x1000ad02
mov ecx, dword [0x100431c0]
or ecx, dword [0x100431c4]
je 0x1000ad02
movsx edx, byte [ebp - 0x11]
xor edx, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], edx
mov eax, dword [0x100431b4]
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
sub ecx, dword [0x100431b0]
sbb edx, eax
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], edx
jmp 0x1000ad37
mov dword [ebp - 4], 0xffffffff
jmp 0x1000ad47
cmp dword [ebp - 0x3b4], 0
jne 0x1000b1f2
movsx edx, byte [ebp - 0x11]
movzx eax, word [0x10043158]
sub eax, edx
movzx ecx, word [0x10043158]
imul ecx, eax
mov word [0x10043158], cx
movzx edx, word [ebp - 0x1c]
test edx, edx
je 0x1000ad8e
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x300], ecx
jmp 0x1000ad9f
movsx eax, word [ebp - 0x30]
cdq
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x300], edx
mov edx, dword [ebp - 0x304]
mov eax, dword [ebp - 0x300]
mov dword [0x10043118], edx
mov dword [0x1004311c], eax
mov ecx, dword [0x10043160]
and ecx, 0x70
mov edx, dword [0x10043138]
shr edx, cl
mov dword [0x10043138], edx
mov eax, 1
imul ecx, eax, 0x14
movsx eax, byte [ecx + 0x100dd8c8]
cdq
mov ecx, dword [ebp - 0x50]
sub ecx, eax
mov eax, dword [ebp - 0x4c]
sbb eax, edx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], eax
mov ecx, dword [0x10043cbc]
mov dword [ebp - 0x108], ecx
mov dx, word [ebp - 0x18]
add dx, 1
mov word [ebp - 0x18], dx
mov eax, dword [ebp - 0x108]
add eax, 0x51d
mov dword [ebp - 0x6b8], eax
mov dword [ebp - 4], 0x16
mov ecx, dword [0x100431a0]
mov edx, dword [0x100431a4]
sub ecx, 0xef1c
sbb edx, 0
mov eax, dword [0x100431c8]
mov esi, dword [0x100431cc]
add eax, ecx
adc esi, edx
mov dword [0x100431c8], eax
mov dword [0x100431cc], esi
movzx ecx, byte [0x1004310f]
mov edx, dword [ebp - 0x48]
imul edx, ecx
mov dword [ebp - 0x48], edx
jmp 0x1000aec4
mov dword [ebp - 4], 0xffffffff
jmp 0x1000aed4
mov eax, dword [ebp - 0x108]
add eax, 0x34d
mov dword [ebp - 0x3bc], eax
mov dword [ebp - 4], 0x18
mov ecx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
movsx eax, word [ebp - 0x20]
cdq
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x458], edx
mov dword [ebp - 0x464], ecx
mov dword [ebp - 0x460], esi
mov edx, dword [ebp - 0x458]
cmp edx, dword [ebp - 0x460]
ja 0x1000af32
jb 0x1000af2d
mov eax, dword [ebp - 0x45c]
cmp eax, dword [ebp - 0x464]
ja 0x1000af32
jmp 0x1000aff9
cmp dword [0x10043174], 0
jne 0x1000aff9
movzx ecx, byte [0x1004305a]
test ecx, ecx
jne 0x1000af5e
xor edx, edx
mov dword [ebp - 0x30c], 1
mov dword [ebp - 0x308], edx
jmp 0x1000af69
xorps xmm0, xmm0
movlpd qword [ebp - 0x30c], xmm0
mov eax, dword [0x10043128]
mov ecx, dword [0x1004312c]
xor eax, dword [ebp - 0x30c]
xor ecx, dword [ebp - 0x308]
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x468], ecx
mov edx, dword [ebp - 0x46c]
or edx, dword [ebp - 0x468]
jne 0x1000afa6
mov dword [ebp - 0x268], 1
jmp 0x1000afb0
mov dword [ebp - 0x268], 0
movzx eax, word [0x1004315c]
not eax
movzx ecx, byte [0x1004300b]
add ecx, eax
sub ecx, dword [ebp - 0x268]
movsx edx, word [ebp - 0x20]
movsx eax, word [0x10043184]
xor eax, edx
not eax
xor eax, ecx
cdq
mov dword [0x100431a0], eax
mov dword [0x100431a4], edx
movsx ax, byte [ebp - 0x12]
mov ecx, 2
imul edx, ecx, 0x17
mov word [edx + 0x102c8680], ax
jmp 0x1000b04a
mov dword [ebp - 4], 0xffffffff
jmp 0x1000b05a
mov edx, dword [ebp - 0x108]
add edx, 0x31c
mov dword [ebp - 0x270], edx
xor eax, eax
mov ecx, dword [0x10043168]
mov edx, dword [0x1004316c]
sub ecx, dword [0x10043148]
sbb edx, eax
mov dword [ebp - 0x474], ecx
mov dword [ebp - 0x470], edx
mov eax, dword [ebp - 0x474]
or eax, dword [ebp - 0x470]
jne 0x1000b0a8
mov dword [ebp - 0x26c], 1
jmp 0x1000b0b2
mov dword [ebp - 0x26c], 0
movzx ecx, word [ebp - 0x24]
imul ecx, dword [0x100431d4]
mov edx, dword [0x10043188]
imul edx, dword [ebp - 0x94]
sub edx, ecx
movsx eax, word [ebp - 0x18]
imul eax, dword [0x10043138]
add eax, dword [ebp - 0x26c]
or eax, edx
mov byte [0x1004305b], al
movsx eax, byte [ebp - 0x29]
cdq
mov ecx, dword [ebp - 0x68]
add ecx, 0xd498e3d7
mov esi, dword [ebp - 0x64]
adc esi, 0
xor ecx, eax
xor esi, edx
movzx eax, byte [0x1004310f]
cdq
mov edi, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x6c]
add edi, eax
adc ebx, edx
movsx eax, word [ebp - 0x18]
not eax
cdq
mov dword [ebp - 0x3b8], esi
mov esi, dword [0x100431c0]
sub esi, eax
mov eax, dword [0x100431c4]
sbb eax, edx
sub esi, edi
sbb eax, ebx
sub esi, ecx
mov ecx, dword [ebp - 0x3b8]
sbb eax, ecx
mov dword [0x10043168], esi
mov dword [0x1004316c], eax
mov edx, dword [ebp - 0x270]
or edx, 0x13f
mov eax, dword [ebp - 0x3bc]
or eax, dword [ebp - 0x270]
cmp eax, edx
je 0x1000b1f2
mov dword [ebp - 0x10c], 0
jmp 0x1000b17e
mov ecx, dword [ebp - 0x10c]
add ecx, 1
mov dword [ebp - 0x10c], ecx
cmp dword [ebp - 0x10c], 0x3e6
jge 0x1000b1bc
mov ecx, 7
mov esi, str.NCryptOpenKey
lea edi, [ebp - 0x71c]
rep movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0x71c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [ebp - 0x34], ax
mov eax, dword [0x10043138]
add eax, 1
mov dword [0x10043138], eax
jmp 0x1000b16f
xor ecx, ecx
mov byte [ebp - 0x99], cl
lea ecx, [ebp - 0x99]
call fcn.10001990
mov dword [ebp - 0x274], eax
mov ecx, dword [ebp - 0x274]
call fcn.10019980
mov edx, dword [ebp - 0x274]
push edx
push 0
push 0
call fcn.10001380
call eax
mov eax, 3
mov word [ebp - 0x24], ax
mov ecx, dword [ebp - 0x44]
sub ecx, 1
mov edx, dword [ebp - 0x40]
sbb edx, 0
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edx
cmp dword [0x10043120], 0
je 0x1000b223
mov eax, dword [0x1004318c]
mov dword [ebp - 0x278], eax
jmp 0x1000b230
movzx ecx, byte [0x1004310f]
mov dword [ebp - 0x278], ecx
mov eax, dword [ebp - 0x278]
cdq
mov dword [0x100431b0], eax
mov dword [0x100431b4], edx
movzx edx, word [ebp - 0x24]
mov dword [ebp - 0x27c], edx
cmp dword [ebp - 0x27c], 3
ja case.default.0x1000b25b
mov eax, dword [ebp - 0x27c]
jmp dword [eax*4 + 0x1000c1c0]
movzx ecx, byte [0x1004305a]
sub ecx, dword [0x100431d0]
movzx edx, byte [0x1004305a]
add edx, ecx
mov byte [0x1004305a], dl
jmp case.default.0x1000b25b
movsx eax, byte [ebp - 0x12]
imul ecx, eax, 0xbc0b
mov word [ebp - 0x34], cx
jmp case.default.0x1000b25b
mov dx, word [0x10043cbc]
mov word [ebp - 0x20], dx
jmp case.default.0x1000b25b
movsx eax, byte [0x10043093]
add eax, dword [ebp - 0x3c]
mov byte [0x10043093], al
xor ecx, ecx
mov byte [ebp - 0x9a], cl
lea ecx, [ebp - 0x9a]
call fcn.10001c00
mov dword [ebp - 0x280], eax
mov ecx, dword [ebp - 0x280]
call fcn.10019780
mov edx, dword [ebp - 0x280]
push edx
push 0
push 0
call fcn.10001620
call eax
mov dword [ebp - 0x3c4], eax
mov dword [ebp - 0x110], 0
jmp 0x1000b303
mov eax, dword [ebp - 0x110]
add eax, 1
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0x2e6
jge 0x1000b50d
mov eax, dword [ebp - 0x80]
cdq
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x478], edx
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [ebp - 0x47c]
jne 0x1000b339
mov edx, dword [ebp - 0x64]
cmp edx, dword [ebp - 0x478]
je 0x1000b345
mov dword [ebp - 0x284], 1
jmp 0x1000b34f
mov dword [ebp - 0x284], 0
cmp dword [ebp - 0x68], 5
jne 0x1000b35b
cmp dword [ebp - 0x64], 0
je 0x1000b367
mov dword [ebp - 0x288], 1
jmp 0x1000b371
mov dword [ebp - 0x288], 0
mov eax, dword [ebp - 0x284]
cmp eax, dword [ebp - 0x288]
jle 0x1000b3ab
mov ecx, dword [0x10043168]
mov esi, dword [0x1004316c]
movzx eax, word [ebp - 0x24]
cdq
push esi
push ecx
push edx
push eax
call fcn.10023240
mov ecx, eax
movzx eax, word [ebp - 0x24]
cdq
sub eax, ecx
mov word [ebp - 0x24], ax
jmp 0x1000b4fc
cmp dword [0x10043148], 0
je 0x1000b43a
mov edx, dword [0x10043190]
mov eax, dword [0x10043194]
add edx, 0x200b6a09
adc eax, 0
mov ecx, dword [0x10043178]
mov esi, dword [0x1004317c]
add ecx, edx
adc esi, eax
mov dword [0x10043178], ecx
mov dword [0x1004317c], esi
movsx edx, word [ebp - 0x28]
xor edx, dword [ebp - 0x38]
jne 0x1000b3fd
mov dword [ebp - 0x28c], 1
jmp 0x1000b407
mov dword [ebp - 0x28c], 0
movsx eax, byte [0x1004310e]
imul eax, dword [ebp - 0x28c]
movsx ecx, word [0x10043180]
mov edx, dword [ebp - 0x90]
imul edx, ecx
add edx, 0x15a2
not edx
imul edx, eax
not edx
mov dword [ebp - 0x3c], edx
jmp 0x1000b4fc
movzx eax, word [0x1004315c]
movsx ecx, word [ebp - 0x28]
cmp ecx, eax
jne 0x1000b4dd
movsx eax, word [0x100431b8]
cdq
mov ecx, dword [0x1004311c]
push ecx
mov ecx, dword [0x10043118]
push ecx
push edx
push eax
call fcn.10023240
mov esi, eax
mov edi, edx
not esi
not edi
mov edx, dword [0x10043190]
mov eax, dword [0x10043194]
mov ecx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x6c]
sub ecx, 0xb79f5b04
sbb ebx, 0
push eax
push edx
push ebx
push ecx
call fcn.10023240
add eax, esi
adc edx, edi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
cmp dword [ebp - 0x48], 0
je 0x1000b4be
mov edx, dword [0x100431a8]
mov eax, dword [0x100431ac]
mov dword [ebp - 0x374], edx
mov dword [ebp - 0x370], eax
jmp 0x1000b4d0
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x374], ecx
mov dword [ebp - 0x370], edx
mov ax, word [ebp - 0x374]
mov word [ebp - 0x20], ax
jmp 0x1000b4fc
movzx ecx, word [0x10043158]
not ecx
cmp ecx, 0xa597
jg 0x1000b4fc
movsx eax, word [ebp - 0x28]
cdq
add eax, 0xe4cb10e7
mov word [ebp - 0x24], ax
mov dx, word [ebp - 0x18]
add dx, 1
mov word [ebp - 0x18], dx
jmp 0x1000b2f4
mov eax, dword [ebp - 0x3c0]
sub eax, dword [ebp - 0x290]
cmp eax, dword [ebp - 0x290]
je 0x1000b792
push 0
push 0xb0
movzx eax, byte [0x1004305a]
cdq
push edx
push eax
push 0
push 0xc4
push 0
push 0xf5
push 0
push 0
push 0
push 0
push 0
push 0x1b
call fcn.1001c700
mov word [ebp - 0x18], ax
movsx ecx, word [ebp - 0x18]
test ecx, ecx
jg 0x1000b56d
mov dword [ebp - 0x294], 1
jmp 0x1000b577
mov dword [ebp - 0x294], 0
movsx edx, word [ebp - 0x18]
cmp edx, 0x43
jg 0x1000b58c
mov dword [ebp - 0x298], 1
jmp 0x1000b596
mov dword [ebp - 0x298], 0
mov eax, dword [ebp - 0x294]
cmp eax, dword [ebp - 0x298]
jl 0x1000b600
mov dword [ebp - 0x114], 0x14a4
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0x6b0], edx
sub ecx, 0xf391
mov dword [0x10043164], ecx
cmp dword [ebp - 0x114], 0x134f
jle 0x1000b5fb
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x114]
sub edx, 1
mov dword [ebp - 0x114], edx
jmp 0x1000b5cc
jmp 0x1000b6a9
movzx eax, word [ebp - 0x1c]
movzx ecx, word [0x10043158]
cmp ecx, eax
jne 0x1000b61b
mov dword [ebp - 0x29c], 1
jmp 0x1000b625
mov dword [ebp - 0x29c], 0
movsx edx, word [ebp - 0x30]
cmp dword [0x10043160], edx
ja 0x1000b63d
mov dword [ebp - 0x2a0], 1
jmp 0x1000b647
mov dword [ebp - 0x2a0], 0
mov eax, dword [ebp - 0x29c]
cmp eax, dword [ebp - 0x2a0]
jle 0x1000b6a9
movzx eax, byte [0x1004300a]
cdq
add eax, dword [0x10043118]
adc edx, dword [0x1004311c]
mov dword [0x10043118], eax
mov dword [0x1004311c], edx
mov ecx, dword [0x10043154]
mov edx, dword [0x100431c8]
mov eax, dword [0x100431cc]
add edx, dword [0x10043150]
adc eax, ecx
mov ecx, dword [0x100431c8]
mov esi, dword [0x100431cc]
sub ecx, edx
sbb esi, eax
mov dword [0x100431c8], ecx
mov dword [0x100431cc], esi
movsx edx, word [ebp - 0x18]
mov eax, 4
imul ecx, eax, 0x9fc
mov dword [ecx + 0x102f79f8], edx
cmp dword [ebp - 0x3c4], 0
jne 0x1000b792
mov dword [ebp - 0x118], 0
jmp 0x1000b6e6
mov edx, dword [ebp - 0x118]
add edx, 1
mov dword [ebp - 0x118], edx
cmp dword [ebp - 0x118], 0x288
jge 0x1000b75c
mov dword [ebp - 4], 0x1a
mov eax, dword [ebp - 0x80]
cdq
push 0xba0a9
push 0xcf9f33c2
push edx
push eax
call fcn.10023240
mov word [0x10043158], ax
mov eax, dword [0x10043178]
mov ecx, dword [0x1004317c]
mov dword [ebp - 0x6ac], ecx
mov byte [0x1004300b], al
jmp 0x1000b73e
mov dword [ebp - 4], 0xffffffff
jmp 0x1000b74e
mov eax, dword [ebp - 0x38]
add eax, 1
mov dword [ebp - 0x38], eax
jmp 0x1000b6d7
xor ecx, ecx
mov byte [ebp - 0x9b], cl
lea ecx, [ebp - 0x9b]
call fcn.10001e10
mov dword [ebp - 0x2a4], eax
mov ecx, dword [ebp - 0x2a4]
call fcn.10019880
mov edx, dword [ebp - 0x2a4]
push edx
push 0
push 0
call fcn.10001380
call eax
xor eax, eax
mov dword [ebp - 0x68], 3
mov dword [ebp - 0x64], eax
movsx ecx, word [0x10043180]
sub ecx, 0xf2db
mov dword [0x1004318c], ecx
mov edx, dword [0x10043138]
add edx, 0x8e
mov word [ebp - 0x20], dx
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x36c], eax
mov dword [ebp - 0x368], ecx
cmp dword [ebp - 0x368], 0
ja 0x1000b8a3
jb 0x1000b7ef
cmp dword [ebp - 0x36c], 3
ja 0x1000b8a3
mov edx, dword [ebp - 0x36c]
mov dword [ebp - 0x6f8], edx
mov eax, dword [ebp - 0x6f8]
jmp dword [eax*4 + 0x1000c1d0]
xor edx, edx
mov byte [ebp - 0x9c], dl
lea ecx, [ebp - 0x9c]
call fcn.10001f00
mov dword [ebp - 0x2a8], eax
mov ecx, dword [ebp - 0x2a8]
call fcn.10019540
mov eax, dword [ebp - 0x2a8]
push eax
push 0
push 0
call fcn.10001620
call eax
mov dword [ebp - 0x3c8], eax
mov ecx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
movzx eax, word [ebp - 0x1c]
cdq
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x480], edx
mov dword [ebp - 0x48c], ecx
mov dword [ebp - 0x488], esi
mov edx, dword [ebp - 0x480]
cmp edx, dword [ebp - 0x488]
jb 0x1000b92c
ja 0x1000b920
mov eax, dword [ebp - 0x484]
cmp eax, dword [ebp - 0x48c]
jbe 0x1000b92c
mov dword [ebp - 0x2ac], 1
jmp 0x1000b936
mov dword [ebp - 0x2ac], 0
movzx ecx, word [ebp - 0x1c]
cmp ecx, 0x1b
jle 0x1000b94b
mov dword [ebp - 0x2b0], 1
jmp 0x1000b955
mov dword [ebp - 0x2b0], 0
mov edx, dword [ebp - 0x2ac]
cmp edx, dword [ebp - 0x2b0]
jge 0x1000b9fc
mov ecx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x74]
movsx eax, byte [ebp - 0x11]
cdq
add eax, ecx
adc edx, esi
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x490], edx
mov edx, dword [ebp - 0x494]
or edx, dword [ebp - 0x490]
je 0x1000b9c0
movsx eax, word [0x10043180]
test eax, eax
je 0x1000b9a7
movsx ecx, byte [ebp - 0x29]
mov dword [ebp - 0x2b4], ecx
jmp 0x1000b9b3
mov edx, dword [0x10043138]
mov dword [ebp - 0x2b4], edx
mov al, byte [ebp - 0x2b4]
mov byte [0x10043112], al
jmp 0x1000b9fc
cmp dword [0x1004318c], 0
je 0x1000b9df
movsx eax, word [0x10043184]
cdq
mov dword [ebp - 0x35c], eax
mov dword [ebp - 0x358], edx
jmp 0x1000b9f1
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x35c], ecx
mov dword [ebp - 0x358], edx
mov eax, dword [ebp - 0x35c]
mov dword [0x10043138], eax
cmp dword [ebp - 0x3c8], 0
jne 0x1000bda9
movsx eax, byte [ebp - 0x12]
cdq
mov ecx, dword [0x10043128]
mov esi, dword [0x1004312c]
mov dword [ebp - 0x49c], ecx
mov dword [ebp - 0x498], esi
mov dword [ebp - 0x4a4], eax
mov dword [ebp - 0x4a0], edx
mov edx, dword [ebp - 0x49c]
cmp edx, dword [ebp - 0x4a4]
jne 0x1000ba4e
mov eax, dword [ebp - 0x498]
cmp eax, dword [ebp - 0x4a0]
je 0x1000ba5a
mov dword [ebp - 0x2b8], 1
jmp 0x1000ba64
mov dword [ebp - 0x2b8], 0
mov ecx, dword [0x10043128]
mov edx, dword [0x1004312c]
mov dword [ebp - 0x4ac], ecx
mov dword [ebp - 0x4a8], edx
cmp dword [ebp - 0x4ac], 0xc
jne 0x1000ba8e
cmp dword [ebp - 0x4a8], 0
je 0x1000ba9a
mov dword [ebp - 0x2bc], 1
jmp 0x1000baa4
mov dword [ebp - 0x2bc], 0
mov eax, dword [ebp - 0x2b8]
cmp eax, dword [ebp - 0x2bc]
je 0x1000baf0
movsx ecx, word [0x10043180]
add ecx, 0x79
mov dword [0x100431d0], ecx
movsx edx, byte [0x1004310e]
test edx, edx
je 0x1000bad8
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c0], eax
jmp 0x1000bae5
movzx ecx, byte [0x10043032]
mov dword [ebp - 0x2c0], ecx
mov dl, byte [ebp - 0x2c0]
mov byte [ebp - 0x11], dl
jmp 0x1000bb0a
mov eax, dword [ebp - 0x50]
or eax, dword [ebp - 0x4c]
je 0x1000bb0a
mov ecx, dword [0x10043188]
add ecx, 0x3322b3e9
mov byte [0x1004305b], cl
mov ecx, dword [0x100431c0]
sub ecx, 0x41
movzx eax, byte [0x1004305a]
cdq
xor eax, ecx
mov byte [0x1004305a], al
mov edx, dword [0x10043cbc]
mov dword [ebp - 0x11c], edx
mov ecx, dword [ebp - 0x11c]
add ecx, 0x53b
mov dword [ebp - 0x2cc], ecx
push 0
movzx dx, byte [0x10043033]
movzx eax, dx
push eax
push 0
mov ecx, dword [0x100431a0]
mov edx, dword [0x100431a4]
mov dword [ebp - 0x6cc], edx
movzx eax, cx
push eax
push 0
push 0
mov ecx, dword [ebp - 0x80]
push ecx
call fcn.1001ba60
cwde
cdq
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x4b4], edx
mov dword [ebp - 0x4b0], eax
cmp dword [ebp - 0x4b0], 0
ja 0x1000bb9f
cmp dword [ebp - 0x4b4], 0
jb 0x1000bbab
mov dword [ebp - 0x2c4], 1
jmp 0x1000bbb5
mov dword [ebp - 0x2c4], 0
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x4bc], ecx
mov dword [ebp - 0x4b8], edx
cmp dword [ebp - 0x4b8], 0
ja 0x1000bbd9
cmp dword [ebp - 0x4bc], 0x3b
jb 0x1000bbe5
mov dword [ebp - 0x2c8], 1
jmp 0x1000bbef
mov dword [ebp - 0x2c8], 0
mov eax, dword [ebp - 0x2c4]
cmp eax, dword [ebp - 0x2c8]
jg 0x1000bc86
movsx ecx, byte [0x10043093]
movsx edx, word [ebp - 0x30]
cmp edx, ecx
je 0x1000bc2e
mov eax, dword [0x10043168]
mov ecx, dword [0x1004316c]
sub eax, 1
sbb ecx, 0
mov dword [0x10043168], eax
mov dword [0x1004316c], ecx
jmp 0x1000bc86
movsx eax, byte [0x10043112]
cdq
mov ecx, dword [ebp - 0x50]
sub ecx, eax
mov eax, dword [ebp - 0x4c]
sbb eax, edx
mov dword [ebp - 0x4c4], ecx
mov dword [ebp - 0x4c0], eax
mov ecx, dword [ebp - 0x4c4]
or ecx, dword [ebp - 0x4c0]
je 0x1000bc86
movzx eax, word [ebp - 0x1c]
add eax, 0xad3a
cdq
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x7c]
xor eax, eax
push 0xee40c
push 0x9ac3b5b2
push eax
push edx
call fcn.10023240
mov word [0x10043170], ax
mov ecx, dword [ebp - 0x11c]
add ecx, 0x334
mov dword [ebp - 0x3d0], ecx
xorps xmm0, xmm0
movlpd qword [0x10043150], xmm0
movsx edx, byte [ebp - 0x12]
sub edx, 0x1972
mov word [ebp - 0x1c], dx
mov eax, dword [0x10043150]
mov ecx, dword [0x10043154]
mov dword [ebp - 0x4cc], eax
mov dword [ebp - 0x4c8], ecx
mov edx, dword [ebp - 0x4cc]
or edx, dword [ebp - 0x4c8]
je 0x1000bcd8
jmp 0x1000bd0e
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x6c8], ecx
add eax, 0x770d9440
mov dword [ebp - 0x80], eax
movzx edx, word [ebp - 0x1c]
imul ecx, edx, 0x74
mov eax, dword [0x10043190]
mov edx, dword [0x10043194]
call fcn.10023280
mov dword [0x10043190], eax
mov dword [0x10043194], edx
mov eax, dword [ebp - 0x11c]
add eax, 0x1f7
mov dword [ebp - 0x3cc], eax
mov ecx, dword [ebp - 0x2cc]
imul ecx, dword [ebp - 0x2cc]
mov edx, dword [ebp - 0x3cc]
add edx, dword [ebp - 0x3d0]
cmp edx, ecx
je 0x1000bda9
movzx eax, byte [0x10043033]
not eax
sub eax, 0x6e65
cdq
mov ecx, eax
mov esi, edx
mov edi, dword [0x10043150]
mov ebx, dword [0x10043154]
movsx eax, word [ebp - 0x20]
cdq
sub eax, edi
sbb edx, ebx
sub eax, ecx
sbb edx, esi
mov dword [0x10043168], eax
mov dword [0x1004316c], edx
xor edx, edx
mov byte [ebp - 0x9d], dl
lea ecx, [ebp - 0x9d]
call fcn.10001fe0
mov dword [ebp - 0x2d0], eax
mov ecx, dword [ebp - 0x2d0]
call fcn.10019500
mov eax, dword [ebp - 0x2d0]
push eax
push 0
push 0
call fcn.10001380
call eax
mov dword [ebp - 4], 0x1c
mov ecx, dword [0x100431b0]
mov edx, dword [0x100431b4]
mov dword [ebp - 0x4d4], ecx
mov dword [ebp - 0x4d0], edx
mov eax, dword [ebp - 0x4d4]
or eax, dword [ebp - 0x4d0]
je 0x1000bdec
movzx eax, byte [0x1004305a]
cdq
mov dword [ebp - 0x354], eax
mov dword [ebp - 0x350], edx
jmp 0x1000bdfe
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x354], ecx
mov dword [ebp - 0x350], edx
mov eax, dword [ebp - 0x354]
mov dword [ebp - 0x48], eax
jmp 0x1000be18
mov dword [ebp - 4], 0xffffffff
jmp 0x1000be28
xor edx, edx
mov byte [ebp - 0x9e], dl
lea ecx, [ebp - 0x9e]
call fcn.10002250
mov dword [ebp - 0x2d4], eax
mov ecx, dword [ebp - 0x2d4]
call fcn.100195c0
mov eax, dword [ebp - 0x2d4]
push eax
push 0
push 0
call fcn.10001620
call eax
mov dword [ebp - 0x2e0], eax
mov ecx, 1
test ecx, ecx
je 0x1000bebd
mov dword [ebp - 0x120], 0
jmp 0x1000be88
mov edx, dword [ebp - 0x120]
add edx, 2
mov dword [ebp - 0x120], edx
cmp dword [ebp - 0x120], 0x167
jge 0x1000bebb
movzx eax, word [0x10043170]
imul ecx, eax, 0xad
mov dword [0x1004318c], ecx
mov dx, word [0x100431b8]
add dx, 1
mov word [0x100431b8], dx
jmp 0x1000be79
jmp 0x1000bee4
movzx eax, byte [0x1004310f]
test eax, eax
je 0x1000bee4
mov ecx, dword [0x10043168]
mov edx, dword [0x1004316c]
mov dword [ebp - 0x6c4], edx
sub ecx, 0x543ad131
mov word [ebp - 0x30], cx
mov eax, dword [ebp - 0x2d8]
add eax, dword [ebp - 0x2dc]
mov ecx, dword [ebp - 0x2d8]
sub ecx, dword [ebp - 0x3d4]
imul ecx, eax
cmp ecx, dword [ebp - 0x2dc]
je 0x1000c000
mov edx, dword [0x10043128]
mov eax, dword [0x1004312c]
mov dword [ebp - 0x6c0], eax
xor edx, 0x28
mov byte [0x1004310f], dl
movsx ecx, word [ebp - 0x28]
imul ecx, dword [0x10043164]
movsx edx, word [ebp - 0x28]
add edx, ecx
mov word [ebp - 0x28], dx
mov ecx, dword [ebp - 0x88]
mov esi, dword [ebp - 0x84]
movsx edx, byte [ebp - 0x12]
movzx eax, byte [0x1004300a]
movzx edi, word [0x10043198]
add edi, eax
add edi, edx
mov eax, edi
cdq
push esi
push ecx
push edx
push eax
call fcn.10023240
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov ecx, dword [0x10043178]
mov edx, dword [0x1004317c]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], edx
cmp dword [ebp - 0x2e0], 0
je 0x1000bf92
cmp dword [ebp - 0x2e0], 0
je 0x1000c000
jmp 0x1000bf9c
jmp 0x1000bfae
jmp 0x1000bfca
xor eax, eax
mov byte [ebp - 0x9f], al
lea ecx, [ebp - 0x9f]
call fcn.10002450
mov dword [ebp - 0x2e4], eax
mov ecx, dword [ebp - 0x2e4]
call fcn.10019580
mov ecx, dword [ebp - 0x2e4]
push ecx
push 0
push 0
call fcn.10001380
call eax
movsx edx, word [0x10043180]
add edx, 0x47625d94
mov word [0x10043170], dx
mov dword [ebp - 0x94], 8
xor eax, eax
mov byte [ebp - 0xa0], al
lea ecx, [ebp - 0xa0]
call fcn.10002530
mov dword [ebp - 0x2e8], eax
mov ecx, dword [ebp - 0x2e8]
call fcn.100197c0
mov ecx, dword [ebp - 0x2e8]
push ecx
push 0
push 0
call fcn.10001620
call eax
mov dword [ebp - 0x2ec], eax
mov eax, dword [0x100431d0]
cdq
mov ecx, dword [ebp - 0x68]
sub ecx, eax
mov eax, dword [ebp - 0x64]
sbb eax, edx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], eax
movzx ecx, byte [0x1004305a]
movzx eax, byte [0x1004300b]
and eax, ecx
cdq
and eax, 0x95f02a54
and edx, 0x1e4e0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
cmp dword [ebp - 0x2ec], 0
je 0x1000c0a8
cmp dword [ebp - 0x2ec], 0
je 0x1000c177
mov dword [ebp - 4], 0x1e
mov ecx, dword [0x100431c0]
sub ecx, 0xbbee2bb1
mov eax, dword [0x100431d4]
cdq
or eax, ecx
mov dword [0x100431d4], eax
mov dword [0x1004318c], 0x36
jmp 0x1000c131
mov dword [ebp - 4], 0xffffffff
jmp 0x1000c141
xor edx, edx
mov byte [ebp - 0xa1], dl
lea ecx, [ebp - 0xa1]
call fcn.10002e80
mov dword [ebp - 0x2f0], eax
mov ecx, dword [ebp - 0x2f0]
call fcn.10019840
mov eax, dword [ebp - 0x2f0]
push eax
push 0
push 0
call fcn.10001380
call eax
movzx ecx, word [ebp - 0x34]
movsx edx, byte [0x1004310e]
cmp edx, ecx
jne 0x1000c196
movsx eax, word [ebp - 0x28]
imul ecx, eax, 0x4096
mov dword [0x100431d4], ecx
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret