Function at 0x10003880
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3b0
push ebx
push esi
push edi
mov byte [ebp - 0x83], 0x1c
mov byte [ebp - 4], 0xe9
mov al, byte [0x100d3027]
mov byte [ebp - 7], al
mov ecx, dword [0x100d31b4]
xor edx, edx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], edx
mov byte [ebp - 6], 0x15
movzx eax, byte [0x100d3027]
mov dword [ebp - 0x2c], eax
mov cl, byte [0x100d3027]
mov byte [ebp - 1], cl
mov edx, dword [0x100d3180]
mov eax, dword [0x100d3184]
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
mov ecx, 0xffff8984
mov word [ebp - 0x28], cx
mov dword [ebp - 0x54], 0xba
mov edx, 0x53
mov word [ebp - 0x20], dx
mov dword [ebp - 0x48], 0x4aa3dc91
mov eax, 0x327e
mov word [ebp - 0xc], ax
mov byte [ebp - 3], 0x47
mov byte [ebp - 2], 0xcc
mov dword [ebp - 0x24], 0x416f
mov ecx, dword [0x100d3144]
mov byte [ebp - 5], cl
mov dl, byte [0x100d3026]
mov byte [ebp - 8], dl
mov dword [ebp - 0x38], 0xa3473410
mov eax, 0x8f2d
mov word [ebp - 0x14], ax
mov cx, word [0x100d3178]
mov word [ebp - 0x18], cx
mov edx, dword [0x100d3148]
mov dword [ebp - 0x44], edx
movsx eax, word [0x100d312c]
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov ax, word [0x100d3150]
mov word [ebp - 0x1c], ax
mov ecx, 0x4cd6
mov word [ebp - 0x10], cx
xor edx, edx
mov dword [ebp - 0x34], 0xd8f1
mov dword [ebp - 0x30], edx
mov byte [ebp - 0x82], 0xd9
movzx eax, byte [0x100d3063]
cdq
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x3a0], edx
mov eax, dword [0x100d3150]
mov dword [ebp - 0x330], eax
mov ecx, dword [0x100d3138]
mov dword [ebp - 0x334], ecx
mov dx, word [0x100d3188]
mov word [ebp - 0x2cc], dx
mov byte [ebp - 0x81], 3
mov al, byte [0x100d3174]
mov byte [ebp - 0x88], al
mov cx, word [0x100d3188]
mov word [ebp - 0x2c8], cx
mov dword [ebp - 0x338], 0x5dc3
mov byte [ebp - 0x86], 0x8b
mov edx, dword [0x100d3188]
mov dword [ebp - 0x33c], edx
mov eax, dword [0x100d31a0]
mov ecx, dword [0x100d31a4]
mov dword [ebp - 0x3ac], eax
mov dword [ebp - 0x3a8], ecx
mov byte [ebp - 0x87], 0xf4
mov dl, byte [0x100d3148]
mov byte [ebp - 0x85], dl
mov eax, dword [0x100d3188]
mov dword [ebp - 0x340], eax
mov ecx, dword [0x100d31a8]
mov edx, dword [0x100d31ac]
mov dword [ebp - 0x384], edx
mov word [ebp - 0x2c4], cx
mov eax, 0x467
mov word [ebp - 0x2c0], ax
mov cl, byte [0x100d3026]
mov byte [ebp - 0x84], cl
movsx edx, byte [ebp - 6]
mov eax, dword [ebp - 0x44]
sub eax, edx
mov ecx, dword [0x100d31b4]
add ecx, dword [0x100d3158]
not ecx
sub eax, ecx
xor edx, edx
mov dword [0x100d31a8], eax
mov dword [0x100d31ac], edx
mov eax, dword [0x100d31b4]
not eax
movsx ecx, word [0x100d3130]
add eax, ecx
xor edx, edx
mov ecx, dword [0x100d319c]
sub eax, dword [0x100d3198]
sbb edx, ecx
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2dc], edx
mov edx, dword [ebp - 0x2e0]
or edx, dword [ebp - 0x2dc]
jne 0x10003abf
mov dword [ebp - 0x1b8], 1
jmp 0x10003ac9
mov dword [ebp - 0x1b8], 0
movsx eax, word [0x100d312c]
imul ecx, dword [0x100d3174], 0x727cd66c
xor eax, ecx
not eax
imul eax, dword [ebp - 0x1b8]
xor edx, edx
mov dword [0x100d31a0], eax
mov dword [0x100d31a4], edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x344], ecx
and eax, dword [0x100d3148]
mov word [ebp - 0x10], ax
mov edx, dword [0x100d3168]
add edx, 1
mov eax, dword [0x100d316c]
adc eax, 0
mov dword [0x100d3168], edx
mov dword [0x100d316c], eax
mov ecx, dword [ebp - 0x38]
xor edx, edx
mov eax, dword [ebp - 0x50]
mov esi, dword [ebp - 0x4c]
push esi
push eax
push edx
push ecx
call fcn.100a25b0
mov dword [ebp - 0x38], eax
mov dword [0x100d3134], 0x904bc542
mov ecx, dword [0x100d3c78]
mov dword [ebp - 0x8c], ecx
movzx edx, byte [0x100d304f]
test edx, edx
je 0x10003c96
movsx eax, word [0x100d3130]
test eax, eax
je 0x10003bc9
movsx eax, word [ebp - 0x18]
cdq
add eax, dword [ebp - 0x5c]
mov word [ebp - 0x18], ax
movsx eax, word [0x100d31b0]
movzx ecx, byte [0x100d3063]
imul eax, ecx
cdq
mov dword [0x100d3150], eax
mov dword [0x100d3154], edx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x348], eax
add edx, 0x921271c7
mov byte [ebp - 5], dl
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
sub ecx, 0x89
sbb edx, 0
mov dword [0x100d3180], ecx
mov dword [0x100d3184], edx
jmp 0x10003c91
movzx eax, byte [ebp - 4]
cmp eax, dword [0x100d3174]
jne 0x10003be9
xor ecx, ecx
mov dword [ebp - 0x1d0], 1
mov dword [ebp - 0x1cc], ecx
jmp 0x10003bf4
xorps xmm0, xmm0
movlpd qword [ebp - 0x1d0], xmm0
mov edx, dword [0x100d314c]
cmp edx, dword [ebp - 0x1cc]
jl 0x10003c91
jg 0x10003c15
mov eax, dword [0x100d3148]
cmp eax, dword [ebp - 0x1d0]
jb 0x10003c91
movsx ecx, word [ebp - 0x20]
sar ecx, 3
mov word [0x100d3130], cx
mov dx, word [ebp - 0xc]
add dx, 1
mov word [ebp - 0xc], dx
movsx eax, byte [0x100d304e]
sub eax, 0x8e
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
movzx eax, byte [ebp - 4]
movsx ecx, byte [ebp - 6]
sub eax, ecx
movzx edx, byte [ebp - 4]
sub edx, eax
mov byte [ebp - 4], dl
mov eax, dword [0x100d311c]
cdq
mov ecx, dword [0x100d31a0]
mov esi, dword [0x100d31a4]
sub ecx, eax
sbb esi, edx
mov edx, dword [0x100d31a0]
mov eax, dword [0x100d31a4]
sub edx, ecx
sbb eax, esi
mov dword [0x100d31a0], edx
mov dword [0x100d31a4], eax
xor ecx, ecx
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x30], ecx
jmp 0x10003d29
mov edx, 0x6421f9f
sub edx, dword [ebp - 0x24]
jne 0x10003ca6
mov byte [ebp - 0x5d], 1
jmp 0x10003caa
mov byte [ebp - 0x5d], 0
mov al, byte [ebp - 0x5d]
mov byte [ebp - 4], al
mov eax, dword [0x100d311c]
cdq
add eax, 0xa04de34f
mov word [ebp - 0x20], ax
mov ecx, 2
mov word [0x100d3130], cx
movzx eax, word [ebp - 0x14]
sar eax, 1
cdq
mov dword [0x100d31a8], eax
mov dword [0x100d31ac], edx
movsx eax, word [0x100d3130]
cdq
mov edx, dword [0x100d3198]
mov ecx, dword [0x100d319c]
mov dword [ebp - 0x34c], ecx
sub eax, edx
mov word [0x100d3130], ax
movzx eax, word [ebp - 0x14]
not eax
cdq
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x350], ecx
xor eax, edx
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x354], ecx
not edx
sub eax, edx
mov byte [0x100d3026], al
mov edx, dword [ebp - 0x8c]
add edx, 0x79a
mov dword [ebp - 0xf0], edx
movzx eax, word [ebp - 0x14]
cmp eax, dword [0x100d3174]
jb 0x10003ecf
call dword [sym.imp.USER32.dll_GetFocus]
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x1fc], 0
cmp dword [ebp - 0x9c], 0
je 0x10003d95
mov dword [ebp - 0x2d0], 1
mov ecx, dword [ebp - 0x2d0]
push ecx
mov edx, dword [ebp - 0x1fc]
push edx
mov eax, dword [ebp - 0x9c]
push eax
call dword [sym.imp.USER32.dll_GetUpdateRect]
mov dword [ebp - 0x358], eax
movzx ecx, byte [ebp - 8]
cmp ecx, dword [0x100d31b4]
je 0x10003dad
mov dword [ebp - 0xa0], 1
jmp 0x10003db7
mov dword [ebp - 0xa0], 0
mov edx, dword [0x100d3180]
mov eax, dword [0x100d3184]
mov dword [ebp - 0x2e8], edx
mov dword [ebp - 0x2e4], eax
cmp dword [ebp - 0x2e4], 0x2a2bd
jb 0x10003df4
ja 0x10003de8
cmp dword [ebp - 0x2e8], 0x161cd1af
jbe 0x10003df4
mov dword [ebp - 0xa4], 1
jmp 0x10003dfe
mov dword [ebp - 0xa4], 0
mov ecx, dword [ebp - 0xa0]
cmp ecx, dword [ebp - 0xa4]
jge 0x10003e18
mov dword [ebp - 0xa8], 1
jmp 0x10003e22
mov dword [ebp - 0xa8], 0
movzx edx, word [ebp - 0x14]
cmp dword [ebp - 0xa8], edx
jne 0x10003e3a
mov dword [ebp - 0xac], 1
jmp 0x10003e44
mov dword [ebp - 0xac], 0
mov eax, dword [ebp - 0xac]
not eax
test eax, eax
je 0x10003eca
mov ecx, 1
imul edx, ecx, 0x6fd1
movzx eax, byte [edx + 0x10286f98]
movzx ecx, byte [ebp - 2]
add ecx, eax
mov byte [ebp - 2], cl
mov edx, dword [0x100d3c78]
mov dword [ebp - 0x44], edx
movzx eax, byte [0x100d3027]
movsx ecx, byte [0x100d3026]
imul eax, ecx
movzx edx, byte [0x100d3027]
sub edx, eax
mov byte [0x100d3027], dl
mov eax, dword [0x100d3144]
sub eax, 0xe9
mov dword [ebp - 0x24], eax
mov ecx, 8
imul edx, ecx, 0x42
mov eax, dword [ebp - 0x38]
sub eax, dword [edx + 0x10180ea0]
mov dword [ebp - 0x38], eax
movzx ecx, word [ebp - 0x14]
mov edx, 4
imul eax, edx, 0xa122
mov dword [eax + 0x10129e80], ecx
jmp 0x1000411a
mov ecx, dword [0x100d31a8]
mov esi, dword [0x100d31ac]
movsx eax, word [ebp - 0x28]
cdq
mov dword [ebp - 0x2f0], ecx
mov dword [ebp - 0x2ec], esi
mov dword [ebp - 0x2f8], eax
mov dword [ebp - 0x2f4], edx
mov edx, dword [ebp - 0x2f0]
cmp edx, dword [ebp - 0x2f8]
jne 0x10003f18
mov eax, dword [ebp - 0x2ec]
cmp eax, dword [ebp - 0x2f4]
je 0x10004043
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x300], ecx
mov dword [ebp - 0x2fc], edx
mov eax, dword [0x100d3168]
cmp eax, dword [ebp - 0x300]
jne 0x10003f49
mov ecx, dword [0x100d316c]
cmp ecx, dword [ebp - 0x2fc]
je 0x10004043
movsx edx, word [ebp - 0x20]
imul eax, edx, 0x5a
mov byte [ebp - 7], al
movsx eax, byte [ebp - 6]
not eax
cdq
push edx
push eax
mov ecx, dword [0x100d313c]
push ecx
mov edx, dword [0x100d3138]
push edx
call fcn.100a25b0
mov dword [ebp - 0x308], eax
mov dword [ebp - 0x304], edx
mov eax, dword [ebp - 0x308]
or eax, dword [ebp - 0x304]
jne 0x10003f9d
xor ecx, ecx
mov dword [ebp - 0x1f0], 1
mov dword [ebp - 0x1ec], ecx
jmp 0x10003fa8
xorps xmm0, xmm0
movlpd qword [ebp - 0x1f0], xmm0
mov edx, dword [0x100d3140]
not edx
mov ecx, edx
xor esi, esi
or ecx, dword [0x100d3160]
or esi, dword [0x100d3164]
not ecx
not esi
sub ecx, dword [ebp - 0x1f0]
sbb esi, dword [ebp - 0x1ec]
mov eax, dword [0x100d3190]
add eax, 0xb277
cdq
add eax, 0xa3679ce
adc edx, 0xf132
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov dword [0x100d311c], eax
movzx edx, word [ebp - 0x14]
imul eax, edx, 0xc05fb112
mov ecx, dword [0x100d3144]
sub ecx, eax
mov dword [0x100d3144], ecx
movzx edx, word [ebp - 0xc]
and edx, 0x21
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x48]
mov ecx, 4
imul edx, ecx, 0xa5e7
mov dword [edx + 0x10129e80], eax
mov eax, 4
imul ecx, eax, 0x513b
mov edx, dword [ecx + 0x10129e80]
mov dword [ebp - 0x48], edx
jmp 0x1000411a
movsx eax, byte [ebp - 6]
test eax, eax
jne 0x1000405a
movsx ecx, word [0x100d312c]
test ecx, ecx
je 0x1000411a
movsx edx, byte [ebp - 1]
shl edx, 8
mov word [ebp - 0x10], dx
movsx eax, byte [ebp - 1]
xor eax, 0xcc01e346
mov dword [0x100d3158], eax
movsx eax, byte [0x100d3026]
cdq
push edx
push eax
mov ecx, dword [0x100d316c]
push ecx
mov edx, dword [0x100d3168]
push edx
call fcn.100a25b0
mov dword [0x100d3168], eax
mov dword [0x100d316c], edx
movzx eax, byte [ebp - 2]
cdq
mov ecx, dword [0x100d31a8]
mov esi, dword [0x100d31ac]
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov ecx, dword [0x100d31a8]
mov esi, dword [0x100d31ac]
or ecx, eax
or esi, edx
mov dword [0x100d31a8], ecx
mov dword [0x100d31ac], esi
mov dword [0x100d3170], 4
movzx eax, byte [ebp - 4]
mov edx, dword [ebp - 0x48]
xor edx, dword [0x100d3190]
add eax, edx
cdq
mov ecx, 0xf33
sub ecx, dword [0x100d3160]
mov esi, 0
sbb esi, dword [0x100d3164]
add ecx, dword [0x100d3138]
adc esi, dword [0x100d313c]
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov word [ebp - 0x18], ax
mov edx, dword [ebp - 0x8c]
add edx, 0x7fe
mov dword [ebp - 0xf4], edx
movzx eax, word [ebp - 0x14]
cdq
mov ecx, dword [0x100d3180]
mov esi, dword [0x100d3184]
mov dword [ebp - 0x310], eax
mov dword [ebp - 0x30c], edx
mov dword [ebp - 0x318], ecx
mov dword [ebp - 0x314], esi
mov edx, dword [ebp - 0x310]
cmp edx, dword [ebp - 0x318]
jne 0x1000417d
mov eax, dword [ebp - 0x30c]
cmp eax, dword [ebp - 0x314]
jne 0x1000417d
mov dword [ebp - 0xb0], 1
jmp 0x10004187
mov dword [ebp - 0xb0], 0
movzx ecx, byte [ebp - 2]
cmp dword [0x100d3170], ecx
jae 0x1000419f
mov dword [ebp - 0xb4], 1
jmp 0x100041a9
mov dword [ebp - 0xb4], 0
mov edx, dword [ebp - 0xb0]
cmp edx, dword [ebp - 0xb4]
jg 0x100041c3
mov dword [ebp - 0xbc], 1
jmp 0x100041cd
mov dword [ebp - 0xbc], 0
movzx eax, word [ebp - 0x1c]
test eax, eax
jne 0x100041e1
mov dword [ebp - 0xb8], 1
jmp 0x100041eb
mov dword [ebp - 0xb8], 0
mov ecx, dword [ebp - 0xb8]
cmp ecx, dword [ebp - 0x54]
jb 0x10004230
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x23c], edx
mov dword [ebp - 0x238], eax
mov ecx, dword [ebp - 0x23c]
cmp ecx, dword [0x100d3120]
jne 0x10004230
mov edx, dword [ebp - 0x238]
cmp edx, dword [0x100d3124]
jne 0x10004230
mov dword [ebp - 0xc0], 1
jmp 0x1000423a
mov dword [ebp - 0xc0], 0
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xc0]
jg 0x10004304
movzx eax, word [ebp - 0xc]
cdq
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x4c]
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov ecx, eax
movzx eax, word [ebp - 0xc]
cdq
sub eax, ecx
mov word [ebp - 0xc], ax
mov edx, dword [0x100d3150]
sub edx, 1
mov eax, dword [0x100d3154]
sbb eax, 0
mov dword [0x100d3150], edx
mov dword [0x100d3154], eax
mov ecx, dword [0x100d3150]
and ecx, 0xb2d7cb5a
mov esi, dword [0x100d3154]
and esi, 0
mov eax, dword [0x100d311c]
cdq
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov dword [0x100d311c], eax
mov edx, dword [0x100d3160]
add edx, 0x5c
mov byte [ebp - 1], dl
movsx eax, word [0x100d3128]
cdq
xor eax, dword [0x100d3148]
mov byte [ebp - 1], al
mov eax, dword [0x100d3134]
add eax, dword [ebp - 0x44]
movzx ecx, word [ebp - 0xc]
movzx edx, byte [0x100d304f]
add ecx, edx
add eax, ecx
jne 0x100042f3
mov eax, 1
mov word [ebp - 0x72], ax
jmp 0x100042f9
xor ecx, ecx
mov word [ebp - 0x72], cx
mov dx, word [ebp - 0x72]
mov word [0x100d315c], dx
mov eax, dword [ebp - 0x8c]
add eax, 0x541
mov dword [ebp - 0x204], eax
mov ecx, dword [0x100d3148]
push ecx
call dword [sym.imp.USER32.dll_GetTopWindow]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp + 8]
mov dword [ebp - 0x200], edx
mov eax, dword [0x100d3174]
push eax
call dword [sym.imp.USER32.dll_OpenIcon]
xor ecx, ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x200]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x118], eax
mov ecx, dword [0x100d3168]
cmp ecx, dword [0x100d3120]
jne 0x1000437c
mov edx, dword [0x100d316c]
cmp edx, dword [0x100d3124]
jne 0x1000437c
mov dword [ebp - 0xc4], 1
jmp 0x10004386
mov dword [ebp - 0xc4], 0
cmp dword [0x100d3168], 0x2f
jne 0x100043a4
cmp dword [0x100d316c], 0
jne 0x100043a4
mov dword [ebp - 0xc8], 1
jmp 0x100043ae
mov dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ebp - 0xc8]
jne 0x100046d5
cmp dword [ebp - 0x54], 0
je 0x10004619
movsx ecx, word [ebp - 0x28]
movzx edx, byte [0x100d3027]
cmp ecx, edx
jle 0x100043e5
mov dword [ebp - 0xcc], 1
jmp 0x100043ef
mov dword [ebp - 0xcc], 0
movsx eax, word [ebp - 0x28]
cmp eax, 0x14
jle 0x10004404
mov dword [ebp - 0xd0], 1
jmp 0x1000440e
mov dword [ebp - 0xd0], 0
mov ecx, dword [ebp - 0xcc]
cmp ecx, dword [ebp - 0xd0]
jle 0x100045a0
xorps xmm0, xmm0
movlpd qword [0x100d31a8], xmm0
mov edx, dword [ebp - 0x24]
imul edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x24]
sub eax, edx
mov dword [ebp - 0x24], eax
mov ecx, dword [0x100d3168]
sub ecx, 0x4f69fd9d
mov byte [0x100d3027], cl
mov edx, dword [0x100d3148]
add edx, 0xb6ac
mov byte [0x100d3027], dl
movsx eax, word [ebp - 0x20]
movzx ecx, byte [ebp - 8]
sub eax, ecx
movsx edx, word [ebp - 0x20]
sub edx, eax
mov word [ebp - 0x20], dx
mov ecx, dword [ebp - 0x54]
add ecx, 0x60
mov al, byte [ebp - 3]
sar al, cl
mov byte [ebp - 3], al
movsx ecx, byte [ebp - 6]
imul eax, ecx, 0xe7
cdq
push edx
push eax
mov edx, dword [0x100d316c]
push edx
mov eax, dword [0x100d3168]
push eax
call fcn.100a25b0
mov dword [0x100d3168], eax
mov dword [0x100d316c], edx
mov ecx, dword [0x100d31a8]
mov edx, dword [0x100d31ac]
mov dword [ebp - 0x214], ecx
mov dword [ebp - 0x210], edx
mov eax, dword [ebp - 0x214]
or eax, dword [ebp - 0x210]
je 0x100044d5
jmp 0x1000459e
movzx eax, word [ebp - 0x14]
not eax
cdq
mov esi, eax
mov edi, edx
movzx eax, word [0x100d315c]
not eax
cdq
push edx
push eax
mov ecx, dword [0x100d314c]
push ecx
mov edx, dword [0x100d3148]
push edx
call fcn.100a25b0
push edx
push eax
push edi
push esi
call fcn.100a25b0
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x218], edx
mov eax, dword [ebp - 0x21c]
or eax, dword [ebp - 0x218]
jne 0x10004528
mov byte [ebp - 0x5e], 1
jmp 0x1000452c
mov byte [ebp - 0x5e], 0
mov cl, byte [ebp - 0x5e]
mov byte [ebp - 3], cl
mov edx, dword [0x100d3170]
xor eax, eax
push 0xb8a1
push 0xef142c0a
push eax
push edx
call fcn.100a25b0
mov byte [0x100d304f], al
mov ecx, 8
imul edx, ecx, 0x8a
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
add eax, dword [edx + 0x10180ea0]
adc ecx, dword [edx + 0x10180ea4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ecx
imul edx, dword [0x100d3140], 0xa77
not edx
mov dword [0x100d3140], edx
movzx eax, word [ebp - 0x14]
cdq
push 0x6abc9
push 0x699045ba
push edx
push eax
call fcn.100a25b0
mov dword [ebp - 0x24], eax
jmp 0x10004614
movsx eax, word [0x100d31b0]
movsx ecx, byte [0x100d3026]
not ecx
cmp eax, ecx
je 0x100045c0
mov dword [ebp - 0xd4], 1
jmp 0x100045ca
mov dword [ebp - 0xd4], 0
movsx edx, word [ebp - 0x18]
cmp edx, dword [ebp - 0xd4]
jge 0x10004614
movzx eax, byte [0x100d3027]
movzx ecx, byte [ebp - 8]
add eax, ecx
mov byte [0x100d3027], al
mov edx, dword [0x100d3c78]
mov dword [0x100d311c], edx
movsx eax, word [0x100d3128]
add eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
movsx eax, word [ebp - 0x18]
cdq
mov dword [0x100d31a8], eax
mov dword [0x100d31ac], edx
jmp 0x100046d5
movsx ecx, word [0x100d3128]
mov edx, dword [ebp - 0x38]
not edx
cmp ecx, edx
ja 0x10004635
mov dword [ebp - 0xd8], 1
jmp 0x1000463f
mov dword [ebp - 0xd8], 0
cmp dword [ebp - 0x48], 0
jne 0x10004659
movzx eax, byte [ebp - 5]
test eax, eax
jne 0x10004659
mov dword [ebp - 0xdc], 0
jmp 0x10004663
mov dword [ebp - 0xdc], 1
mov ecx, dword [ebp - 0xd8]
not ecx
cmp ecx, dword [ebp - 0xdc]
jne 0x100046d5
movzx eax, word [ebp - 0x14]
sub eax, 0x1dc50308
cdq
mov dword [0x100d3168], eax
mov dword [0x100d316c], edx
mov eax, dword [0x100d3134]
cdq
mov ecx, eax
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x35c], eax
add ecx, edx
mov eax, dword [0x100d3134]
cdq
add eax, ecx
mov dword [0x100d3134], eax
mov eax, dword [0x100d3150]
mov edx, dword [0x100d3154]
mov cl, 5
call fcn.100a26c0
mov dword [ebp - 0x48], eax
mov ecx, dword [0x100d3158]
shl ecx, 6
mov dword [ebp - 0x38], ecx
mov dl, byte [0x100d3c78]
mov byte [ebp - 1], dl
mov dword [ebp - 0x80], 1
movsx eax, byte [ebp - 1]
cdq
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], edx
mov eax, dword [ebp - 0x220]
cmp eax, dword [ebp - 0x58]
ja 0x10004711
jb 0x10004705
mov ecx, dword [ebp - 0x224]
cmp ecx, dword [ebp - 0x5c]
ja 0x10004711
mov dword [ebp - 0xe0], 1
jmp 0x1000471b
mov dword [ebp - 0xe0], 0
movsx edx, byte [ebp - 1]
cmp edx, 0x52
jg 0x10004730
mov dword [ebp - 0xe4], 1
jmp 0x1000473a
mov dword [ebp - 0xe4], 0
mov eax, dword [ebp - 0xe0]
cmp eax, dword [ebp - 0xe4]
jne 0x10004759
call dword [sym.imp.USER32.dll_GetCaretBlinkTime]
mov word [0x100d31b0], ax
jmp 0x100047f8
movzx ecx, word [ebp - 0x1c]
test ecx, ecx
je 0x100047f8
mov edx, dword [0x100d311c]
sub edx, 0xe0c4
mov word [0x100d315c], dx
movzx eax, byte [ebp - 2]
sar eax, 5
mov word [0x100d31b0], ax
mov ecx, dword [ebp - 0x48]
add ecx, dword [0x100d3170]
mov dword [0x100d3170], ecx
movzx edx, byte [0x100d304f]
imul edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
sub eax, edx
mov dword [ebp - 0x44], eax
cmp dword [0x100d3158], 0
jne 0x100047bc
mov dword [ebp - 0xe8], 1
jmp 0x100047c6
mov dword [ebp - 0xe8], 0
movzx ecx, byte [ebp - 4]
test ecx, ecx
jne 0x100047da
mov dword [ebp - 0xec], 1
jmp 0x100047e4
mov dword [ebp - 0xec], 0
movzx edx, word [ebp - 0xc]
add edx, dword [ebp - 0xe8]
imul edx, dword [ebp - 0xec]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0xf4]
xor eax, 0xe4
mov ecx, dword [ebp - 0xf0]
add ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x204]
imul edx, dword [ebp - 0xf4]
sub ecx, edx
cmp eax, ecx
je 0x10004edc
movzx eax, word [0x100d3178]
cmp dword [0x100d3134], eax
je 0x10004841
mov dword [ebp - 0xf8], 1
jmp 0x1000484b
mov dword [ebp - 0xf8], 0
cmp dword [0x100d3134], 0x39
je 0x10004860
mov dword [ebp - 0xfc], 1
jmp 0x1000486a
mov dword [ebp - 0xfc], 0
mov ecx, dword [ebp - 0xf8]
cmp ecx, dword [ebp - 0xfc]
jl 0x100049df
movsx edx, word [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
xor ecx, ecx
mov dword [0x100d3148], eax
mov dword [0x100d314c], ecx
cmp dword [0x100d314c], 0
jg 0x100048b4
jl 0x100048a8
cmp dword [0x100d3148], 0
ja 0x100048b4
mov dword [ebp - 0x100], 1
jmp 0x100048be
mov dword [ebp - 0x100], 0
cmp dword [0x100d314c], 0
jg 0x100048de
jl 0x100048d2
cmp dword [0x100d3148], 0x14
ja 0x100048de
mov dword [ebp - 0x104], 1
jmp 0x100048e8
mov dword [ebp - 0x104], 0
mov edx, dword [ebp - 0x100]
cmp edx, dword [ebp - 0x104]
jg 0x1000493a
mov al, byte [0x100d3c78]
mov byte [ebp - 1], al
mov ecx, dword [0x100d3134]
mov dword [0x100d3174], ecx
mov dword [0x100d3174], 8
movzx edx, byte [ebp - 8]
test edx, edx
je 0x10004926
mov ax, word [ebp - 0x28]
mov word [ebp - 0x74], ax
jmp 0x1000492e
mov cx, word [ebp - 0x10]
mov word [ebp - 0x74], cx
movsx edx, word [ebp - 0x74]
mov dword [ebp - 0x2c], edx
jmp 0x100049dd
mov eax, 0xb423f2a4
test eax, eax
je 0x100049dd
movsx ecx, byte [0x100d304e]
movzx edx, byte [ebp - 5]
imul ecx, edx
movsx eax, byte [0x100d304e]
add eax, ecx
mov byte [0x100d304e], al
mov ecx, dword [ebp - 0x38]
xor esi, esi
movsx eax, word [ebp - 0x28]
cdq
sub eax, dword [0x100d3168]
sbb edx, dword [0x100d316c]
not eax
not edx
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov edx, 0xe589701f
sub edx, dword [0x100d3150]
mov ecx, dword [ebp - 0x5c]
not ecx
add edx, ecx
add eax, edx
mov byte [ebp - 6], al
mov edx, dword [ebp - 0x2c]
sub edx, 0x947a
mov word [0x100d3178], dx
movsx eax, byte [ebp - 1]
cdq
sub eax, 0x83d6af12
sbb edx, 0xbb35
mov ecx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x30]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], esi
movsx eax, byte [ebp - 1]
cdq
add eax, 0xd138085e
mov word [0x100d315c], ax
jmp 0x10004a36
push 0
push 0xef
mov edx, dword [0x100d313c]
push edx
mov eax, dword [0x100d3138]
push eax
call fcn.100a25b0
mov byte [0x100d304f], al
movsx ecx, byte [ebp - 1]
sub ecx, 0x333c4877
mov dword [0x100d3140], ecx
mov edx, dword [ebp - 0x38]
sub edx, 0x21501112
mov byte [0x100d304e], dl
movzx eax, word [0x100d3178]
sar eax, 7
mov dword [0x100d31b4], eax
imul ecx, dword [ebp - 0x24], 0xc4c7ed8c
mov word [ebp - 0x10], cx
movzx edx, byte [ebp - 7]
test edx, edx
je 0x10004c4e
xor eax, eax
mov dword [ebp - 0x5c], 2
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
add ecx, 0x4f21aedc
adc esi, 0x9805d
mov eax, dword [0x100d311c]
cdq
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov dword [0x100d311c], eax
movsx edx, byte [ebp - 6]
imul edx, dword [ebp - 0x54]
movsx eax, byte [ebp - 6]
add eax, edx
mov byte [ebp - 6], al
mov ecx, dword [0x100d3148]
add ecx, 0x52
mov dword [0x100d3190], ecx
movsx edx, byte [0x100d3026]
movzx eax, word [0x100d315c]
imul edx, eax
movsx ecx, byte [0x100d3026]
add ecx, edx
mov byte [0x100d3026], cl
movsx eax, byte [ebp - 6]
cdq
mov ecx, dword [0x100d3198]
mov esi, dword [0x100d319c]
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov byte [ebp - 6], al
mov edx, dword [0x100d31a8]
mov eax, dword [0x100d31ac]
mov dword [ebp - 0x360], eax
sub edx, 0x81
mov byte [0x100d304e], dl
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], edx
mov eax, dword [ebp - 0x98]
or eax, dword [ebp - 0x94]
je 0x10004b3b
cmp dword [ebp - 0x98], 1
jne 0x10004b20
cmp dword [ebp - 0x94], 0
je 0x10004b95
cmp dword [ebp - 0x98], 2
jne 0x10004b36
cmp dword [ebp - 0x94], 0
je 0x10004be8
jmp 0x10004c4e
mov eax, dword [0x100d3148]
mov edx, dword [0x100d314c]
mov cl, 3
call fcn.100a2610
mov dword [0x100d3148], eax
mov dword [0x100d314c], edx
mov ecx, dword [0x100d3c78]
mov dword [0x100d3134], ecx
mov edx, dword [ebp - 0x2c]
imul edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
movzx eax, word [ebp - 0xc]
imul eax, dword [0x100d3174]
movzx ecx, word [ebp - 0xc]
add ecx, eax
mov word [ebp - 0xc], cx
mov dword [0x100d3134], 0x2d2f770f
jmp 0x10004c4e
movzx edx, byte [0x100d3027]
add edx, dword [0x100d31b4]
movzx eax, byte [0x100d3027]
add eax, edx
mov byte [0x100d3027], al
mov ecx, 0xffffb4ae
mov word [0x100d3128], cx
mov dword [0x100d3170], 0x91705e18
mov edx, dword [0x100d3c78]
mov dword [0x100d3190], edx
movsx eax, word [0x100d31b0]
movsx ecx, byte [ebp - 6]
imul eax, ecx
mov word [0x100d31b0], ax
jmp 0x10004c4e
mov dx, word [0x100d3c78]
mov word [0x100d315c], dx
movzx eax, word [ebp - 0xc]
imul ecx, eax, 0xdf99d96
mov byte [0x100d3026], cl
movsx edx, word [ebp - 0x10]
imul eax, edx, 0x300a79
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov eax, 4
imul ecx, eax, 0x18bc
mov edx, dword [ecx + 0x1022c100]
xor eax, eax
mov dword [0x100d3168], edx
mov dword [0x100d316c], eax
movzx ecx, byte [0x100d304f]
mov edx, dword [0x100d31b4]
lea eax, [ecx + edx + 0xd4c1]
mov byte [0x100d304f], al
mov ecx, 8
shl ecx, 0
mov edx, dword [ebp - 0x118]
cmp dword [edx + ecx + 0x7c], 0
jne 0x10004edc
movsx eax, byte [0x100d304e]
mov ecx, 4
imul edx, ecx, 0x1a
mov dword [edx + 0x101bcc58], eax
movzx eax, word [ebp - 0x14]
test eax, eax
je 0x10004c90
movzx ecx, word [ebp - 0x14]
mov dword [ebp - 0x108], ecx
jmp 0x10004c9a
movzx edx, byte [ebp - 8]
mov dword [ebp - 0x108], edx
mov al, byte [ebp - 0x108]
mov byte [ebp - 5], al
movzx ecx, word [ebp - 0x14]
imul eax, ecx, 0xc2
cdq
mov dword [0x100d3198], eax
mov dword [0x100d319c], edx
mov edx, 1
imul eax, edx, 0xa
movsx ecx, byte [eax + 0x103396e4]
or ecx, dword [0x100d31b4]
mov dword [0x100d31b4], ecx
movsx eax, byte [ebp - 3]
cdq
mov ecx, dword [0x100d3164]
push ecx
mov ecx, dword [0x100d3160]
push ecx
push edx
push eax
call fcn.100a25b0
mov ecx, eax
movsx eax, byte [ebp - 3]
cdq
sub eax, ecx
mov byte [ebp - 3], al
cmp dword [ebp - 0x24], 0
je 0x10004e3d
mov ecx, dword [0x100d31a0]
mov esi, dword [0x100d31a4]
movzx eax, byte [0x100d3027]
cdq
mov dword [ebp - 0x22c], ecx
mov dword [ebp - 0x228], esi
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x230], edx
mov edx, dword [ebp - 0x228]
cmp edx, dword [ebp - 0x230]
jl 0x10004d5a
jg 0x10004d4e
mov eax, dword [ebp - 0x22c]
cmp eax, dword [ebp - 0x234]
jb 0x10004d5a
mov dword [ebp - 0x10c], 1
jmp 0x10004d64
mov dword [ebp - 0x10c], 0
mov ecx, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
mov dword [ebp - 0x244], ecx
mov dword [ebp - 0x240], edx
cmp dword [ebp - 0x240], 0
jl 0x10004d9c
jg 0x10004d90
cmp dword [ebp - 0x244], 0x61
jb 0x10004d9c
mov dword [ebp - 0x110], 1
jmp 0x10004da6
mov dword [ebp - 0x110], 0
mov eax, dword [ebp - 0x10c]
cmp eax, dword [ebp - 0x110]
jne 0x10004dc2
call dword [sym.imp.KERNEL32.dll_GetLargePageMinimum]
mov word [0x100d3130], ax
jmp 0x10004e38
movzx ecx, byte [0x100d3027]
cmp dword [ebp - 0x48], ecx
jne 0x10004e38
movsx edx, word [0x100d31b0]
sub edx, dword [0x100d3140]
movsx eax, word [0x100d31b0]
and eax, edx
mov word [0x100d31b0], ax
mov ecx, 0x787c
mov word [0x100d315c], cx
mov edx, dword [0x100d311c]
shl edx, 6
mov byte [0x100d3027], dl
mov al, byte [ebp - 2]
sub al, 1
mov byte [ebp - 2], al
movsx ecx, byte [0x100d304e]
sub ecx, 0xc53f
mov edx, dword [0x100d3144]
imul edx, ecx
mov dword [0x100d3144], edx
mov eax, dword [0x100d3148]
add eax, 0xb790e9a2
mov dword [0x100d31b4], eax
jmp 0x10004ed2
movsx ecx, byte [0x100d3026]
not ecx
movzx edx, byte [ebp - 4]
sub ecx, edx
jne 0x10004e5a
mov dword [ebp - 0x114], 1
jmp 0x10004e64
mov dword [ebp - 0x114], 0
movzx eax, byte [ebp - 2]
not eax
movsx ecx, word [ebp - 0x10]
add eax, ecx
xor eax, dword [ebp - 0x114]
mov dword [0x100d3140], eax
mov byte [ebp - 7], 0x3f
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x4c]
sub edx, 0x3f9e3f3a
sbb eax, 0
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], eax
movzx ecx, word [0x100d315c]
sub ecx, 0xd2
mov dword [0x100d31b4], ecx
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, 8
imul ecx, ecx, 0xc
mov dword [ecx + 0x10122118], eax
mov dword [ecx + 0x1012211c], edx
movzx eax, byte [0x100d3063]
cdq
add eax, 0xb509f6a8
mov dword [0x100d3144], eax
mov eax, 1
jmp 0x10007159
mov dword [ebp - 0x44], 1
mov byte [0x100d304f], 0x8f
mov edx, dword [0x100d3170]
add edx, 0x88
xor eax, eax
mov ecx, dword [0x100d3188]
sub ecx, edx
mov edx, dword [0x100d318c]
sbb edx, eax
mov dword [0x100d3188], ecx
mov dword [0x100d318c], edx
mov ecx, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
mov dword [ebp - 0x364], edx
add ecx, 0xa4
movsx eax, word [0x100d3130]
cdq
sub eax, ecx
mov word [0x100d3130], ax
mov eax, dword [ebp - 0x48]
add eax, 1
mov dword [ebp - 0x48], eax
mov ecx, 8
shl ecx, 0
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp + 8]
add eax, dword [edx + ecx + 0x78]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x2c], 0x899e5498
movzx eax, word [ebp - 0xc]
cdq
sub eax, 0x2ec5ffe7
mov byte [ebp - 1], al
mov cl, byte [0x100d3c78]
mov byte [ebp - 3], cl
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [0x100d319c]
sub edx, dword [0x100d3198]
sbb eax, ecx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
mov edx, dword [0x100d3198]
mov eax, dword [0x100d319c]
mov dword [ebp - 0x24c], edx
mov dword [ebp - 0x248], eax
mov ecx, dword [ebp - 0x24c]
or ecx, dword [ebp - 0x248]
jne 0x10004fc5
mov dword [ebp - 0x11c], 1
jmp 0x10004fcf
mov dword [ebp - 0x11c], 0
movsx edx, word [0x100d3130]
mov eax, dword [0x100d311c]
not eax
add edx, eax
not edx
imul ecx, dword [ebp - 0x11c], 0x758c
sub edx, ecx
mov dword [ebp - 0x54], edx
movzx edx, byte [ebp - 8]
xor edx, dword [ebp - 0x38]
mov dword [0x100d3170], edx
jmp 0x10005008
mov eax, dword [ebp - 0x68]
add eax, 0x14
mov dword [ebp - 0x68], eax
push 0x14
mov ecx, dword [ebp - 0x68]
push ecx
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100070a8
mov edx, dword [ebp - 0x68]
cmp dword [edx + 0xc], 0
je 0x100070a8
movzx eax, byte [0x100d3027]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x1000504c
mov dword [ebp - 0x120], 1
jmp 0x10005056
mov dword [ebp - 0x120], 0
cmp dword [ebp - 0x24], 0xf
je 0x10005068
mov dword [ebp - 0x124], 1
jmp 0x10005072
mov dword [ebp - 0x124], 0
mov ecx, dword [ebp - 0x120]
cmp ecx, dword [ebp - 0x124]
jl 0x10005185
movsx edx, word [0x100d3130]
movsx eax, word [ebp - 0x20]
cmp edx, eax
jge 0x1000512f
movsx ecx, word [ebp - 0x28]
sub ecx, dword [ebp - 0x38]
mov word [ebp - 0x28], cx
mov edx, dword [ebp - 0x2c]
sub edx, 0xae6e2d0b
mov word [ebp - 0x20], dx
mov eax, dword [0x100d3198]
mov ecx, dword [0x100d319c]
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x250], ecx
mov edx, dword [ebp - 0x254]
or edx, dword [ebp - 0x250]
je 0x100050e7
movzx eax, byte [ebp - 2]
cdq
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], edx
jmp 0x100050fe
mov eax, dword [0x100d31a8]
mov ecx, dword [0x100d31ac]
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], ecx
mov dl, byte [ebp - 0x1c8]
mov byte [0x100d304e], dl
movzx eax, word [0x100d3178]
sub eax, dword [0x100d3144]
mov word [0x100d3178], ax
movzx ecx, byte [0x100d3027]
imul edx, ecx, 0xb01
mov dword [ebp - 0x24], edx
jmp 0x10005180
movsx eax, byte [0x100d3026]
sar eax, 5
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
movzx eax, word [ebp - 0x14]
shl eax, 5
cdq
mov dword [0x100d3168], eax
mov dword [0x100d316c], edx
imul eax, dword [0x100d3158], 0x36
mov dword [ebp - 0x2c], eax
mov ecx, dword [0x100d31b4]
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x368], eax
sub ecx, edx
mov dword [0x100d31b4], ecx
mov cl, byte [0x100d3c78]
mov byte [ebp - 1], cl
jmp 0x10005208
xor edx, edx
je 0x10005208
mov eax, dword [0x100d3168]
add eax, dword [ebp - 0x5c]
mov ecx, dword [0x100d316c]
adc ecx, dword [ebp - 0x58]
push ecx
push eax
mov edx, dword [0x100d316c]
push edx
mov eax, dword [0x100d3168]
push eax
call fcn.100a25b0
mov dword [0x100d3168], eax
mov dword [0x100d316c], edx
mov ecx, 8
imul ecx, ecx, 0x41
movzx eax, word [ebp - 0x14]
cdq
sub eax, dword [ecx + 0x10175cb8]
mov word [ebp - 0x14], ax
mov edx, dword [0x100d3158]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x36c], ecx
sub edx, eax
mov eax, dword [0x100d3158]
add eax, edx
mov dword [0x100d3158], eax
movzx ecx, byte [ebp - 5]
and ecx, dword [ebp - 0x24]
mov byte [ebp - 5], cl
movzx edx, word [ebp - 0x1c]
add edx, 0x45
mov word [0x100d3178], dx
push 0
push 0xfc
push 0xfe
push 0xa3
call fcn.1005a510
add esp, 0x10
movzx eax, ax
cdq
mov dword [0x100d3188], eax
mov dword [0x100d318c], edx
mov eax, dword [0x100d3188]
or eax, dword [0x100d318c]
je 0x10005284
mov cl, byte [0x100d304f]
sub cl, 1
mov byte [0x100d304f], cl
movzx edx, byte [ebp - 7]
imul eax, edx, 0xbe3a6fdf
mov dword [ebp - 0x44], eax
mov ecx, dword [0x100d3c78]
xor edx, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], edx
movsx eax, word [0x100d312c]
movzx ecx, word [ebp - 0x14]
sub eax, ecx
cdq
mov edx, 0x66d780e6
sub edx, eax
mov dword [0x100d31b4], edx
jmp 0x100052f8
movzx eax, byte [ebp - 8]
cdq
mov dword [0x100d3138], eax
mov dword [0x100d313c], edx
movsx eax, byte [ebp - 3]
add eax, 0xf3
mov word [0x100d31b0], ax
movsx ecx, word [ebp - 0x10]
movzx edx, byte [0x100d304f]
sub ecx, edx
mov word [ebp - 0x10], cx
mov eax, dword [ebp - 0x24]
cdq
mov ecx, dword [0x100d3188]
sub ecx, eax
mov eax, dword [0x100d318c]
sbb eax, edx
mov dword [0x100d3188], ecx
mov dword [0x100d318c], eax
mov cl, byte [ebp - 1]
mov byte [0x100d3063], cl
xor edx, edx
mov eax, dword [0x100d3150]
sub eax, dword [ebp - 0x38]
mov ecx, dword [0x100d3154]
sbb ecx, edx
mov dword [0x100d3150], eax
mov dword [0x100d3154], ecx
mov edx, dword [ebp - 0x2c]
sub edx, dword [0x100d311c]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
add eax, 0xd687
mov byte [0x100d3026], al
mov ecx, 2
mov word [ebp - 0x28], cx
mov edx, dword [ebp - 0x38]
xor edx, 0xf57
mov byte [0x100d3063], dl
mov ax, word [0x100d3c78]
mov word [ebp - 0x20], ax
movsx ecx, byte [ebp - 1]
xor ecx, dword [ebp - 0x48]
jne 0x10005342
mov byte [ebp - 0x5f], 1
jmp 0x10005346
mov byte [ebp - 0x5f], 0
mov dl, byte [ebp - 0x5f]
mov byte [0x100d3027], dl
mov eax, dword [ebp - 0x44]
xor ecx, ecx
add eax, 0xa01d2c8c
adc ecx, 0x77bf3
mov dword [0x100d3138], eax
mov dword [0x100d313c], ecx
mov edx, dword [0x100d3144]
imul edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x24], 0
jne 0x10005389
mov dword [ebp - 0x128], 1
jmp 0x10005393
mov dword [ebp - 0x128], 0
cmp dword [0x100d3134], 0
jne 0x100053a8
mov dword [ebp - 0x12c], 1
jmp 0x100053b2
mov dword [ebp - 0x12c], 0
movzx eax, byte [ebp - 8]
mov ecx, dword [ebp - 0x128]
add ecx, dword [ebp - 0x12c]
not ecx
movzx edx, byte [0x100d304f]
movsx esi, word [ebp - 0x10]
imul edx, esi
imul ecx, edx
imul eax, ecx
mov byte [ebp - 4], al
movsx eax, word [ebp - 0x20]
sub eax, 0xce1b
movsx ecx, byte [0x100d3026]
sub ecx, eax
mov byte [0x100d3026], cl
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0xc]
push eax
push 0
push 0
call fcn.10001440
add esp, 8
call eax
mov dword [ebp - 0x7c], eax
mov ecx, dword [0x100d3154]
cmp ecx, dword [0x100d316c]
ja 0x10005438
jb 0x1000542c
mov edx, dword [0x100d3150]
cmp edx, dword [0x100d3168]
ja 0x10005438
mov dword [ebp - 0x130], 1
jmp 0x10005442
mov dword [ebp - 0x130], 0
cmp dword [0x100d3154], 0
ja 0x10005462
jb 0x10005456
cmp dword [0x100d3150], 0x20
ja 0x10005462
mov dword [ebp - 0x134], 1
jmp 0x1000546c
mov dword [ebp - 0x134], 0
mov eax, dword [ebp - 0x130]
cmp eax, dword [ebp - 0x134]
jg 0x10005528
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
movzx eax, byte [ebp - 4]
cdq
mov dword [ebp - 0x25c], ecx
mov dword [ebp - 0x258], esi
mov dword [ebp - 0x264], eax
mov dword [ebp - 0x260], edx
mov edx, dword [ebp - 0x25c]
cmp edx, dword [ebp - 0x264]
jne 0x100054bd
mov eax, dword [ebp - 0x258]
cmp eax, dword [ebp - 0x260]
je 0x10005526
mov ecx, dword [0x100d3c78]
mov dword [0x100d311c], ecx
mov byte [ebp - 4], 7
movsx edx, word [0x100d3128]
sub edx, dword [0x100d3158]
mov word [0x100d3128], dx
movsx eax, byte [ebp - 3]
test eax, eax
je 0x100054f5
movzx ecx, word [ebp - 0x1c]
mov dword [ebp - 0x138], ecx
jmp 0x100054ff
movzx edx, byte [ebp - 7]
mov dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x138]
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
push 0
push 0xa782
mov eax, dword [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.100a25b0
mov word [0x100d3178], ax
jmp 0x100055a1
movzx edx, word [ebp - 0x14]
test edx, edx
je 0x100055a1
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
push 0
push 0xfaceade8
push ecx
push eax
call fcn.100a25b0
add eax, dword [0x100d3120]
mov word [ebp - 0x10], ax
movzx eax, word [0x100d3178]
cdq
mov ecx, dword [0x100d31a8]
mov esi, dword [0x100d31ac]
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov ecx, eax
mov esi, edx
movzx eax, word [ebp - 0x1c]
cdq
sub ecx, eax
sbb esi, edx
mov dword [0x100d3180], ecx
mov dword [0x100d3184], esi
movsx edx, word [0x100d3128]
mov eax, dword [ebp - 0x38]
not eax
add edx, eax
mov byte [ebp - 7], dl
mov ecx, dword [ebp - 0x54]
add ecx, 0x16f13a0b
mov dword [ebp - 0x44], ecx
cmp dword [ebp - 0x7c], 0
jne 0x10005686
mov edx, 1
imul eax, edx, 0x26ea
movzx ecx, byte [eax + 0x10176220]
mov edx, dword [0x100d3190]
sub edx, ecx
mov dword [0x100d3190], edx
mov ax, word [ebp - 0x2c]
mov word [ebp - 0xc], ax
mov eax, dword [ebp - 0x24]
and eax, 0xaefe
cdq
mov dword [0x100d3148], eax
mov dword [0x100d314c], edx
movsx ecx, word [ebp - 0x18]
mov edx, dword [ebp - 0x24]
sub edx, ecx
mov eax, dword [ebp - 0x24]
add eax, edx
mov dword [ebp - 0x24], eax
movsx ecx, word [ebp - 0x20]
imul edx, ecx, 0xbfd07a99
mov word [ebp - 0x18], dx
mov al, byte [0x100d3c78]
mov byte [ebp - 5], al
mov ecx, dword [ebp - 0x44]
add ecx, 0xbda3
mov byte [0x100d304f], cl
mov edx, dword [0x100d3170]
shl edx, 1
xor eax, eax
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
mov ecx, dword [0x100d3174]
mov edx, dword [0x100d31a8]
mov eax, dword [0x100d31ac]
mov dword [ebp - 0x370], eax
add ecx, edx
mov edx, dword [ebp - 0x5c]
sub edx, dword [0x100d3120]
add ecx, edx
mov dword [ebp - 0x54], ecx
movzx eax, byte [ebp - 2]
add eax, 0xc7
mov byte [ebp - 4], al
mov ecx, dword [0x100d3190]
add ecx, dword [0x100d3174]
mov edx, dword [0x100d3190]
add edx, ecx
mov dword [0x100d3190], edx
mov dword [ebp - 0x80], 0
jmp 0x100070a8
mov dword [ebp - 0x24], 3
mov eax, dword [ebp - 0x24]
sub eax, 0x9b
mov byte [0x100d304f], al
mov cl, byte [ebp - 0x18]
mov byte [ebp - 2], cl
mov edx, dword [0x100d3150]
add edx, 1
mov eax, dword [0x100d3154]
adc eax, 0
mov dword [0x100d3150], edx
mov dword [0x100d3154], eax
mov byte [ebp - 5], 0x52
cmp dword [0x100d3170], 0
jne 0x100056dd
xor ecx, ecx
mov dword [ebp - 0x26c], 1
mov dword [ebp - 0x268], ecx
jmp 0x100056e8
xorps xmm0, xmm0
movlpd qword [ebp - 0x26c], xmm0
mov eax, dword [ebp - 0x48]
cdq
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x4c]
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov ecx, eax
add ecx, dword [ebp - 0x38]
not ecx
movsx eax, word [ebp - 0x20]
cdq
add eax, dword [0x100d3150]
mov edx, dword [ebp - 0x26c]
sub edx, eax
sub ecx, edx
mov word [0x100d3178], cx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x13c], eax
cmp dword [ebp - 0x13c], 3
ja case.default.0x1000573a
mov ecx, dword [ebp - 0x13c]
jmp dword [ecx*4 + 0x10007160]
movsx eax, word [ebp - 0x18]
cdq
mov edx, dword [0x100d3198]
mov ecx, dword [0x100d319c]
mov dword [ebp - 0x374], ecx
xor eax, edx
movzx edx, word [ebp - 0x1c]
sub edx, dword [ebp - 0x54]
add eax, edx
not eax
mov word [ebp - 0x18], ax
mov al, byte [0x100d3188]
mov byte [ebp - 3], al
mov ecx, dword [0x100d3190]
and ecx, 0xe5
mov word [ebp - 0x20], cx
movsx edx, word [ebp - 0x18]
imul eax, edx, 0x6697f608
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x378], edx
sub ecx, 0xff949c01
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x24]
shl eax, 1
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp case.default.0x1000573a
movsx eax, word [ebp - 0x18]
test eax, eax
je 0x100057c8
movzx ecx, byte [ebp - 8]
mov dword [ebp - 0x140], ecx
jmp 0x100057d1
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x140], edx
mov eax, dword [ebp - 0x140]
xor ecx, ecx
mov dword [0x100d3180], eax
mov dword [0x100d3184], ecx
mov edx, dword [ebp - 0x4c]
mov eax, dword [0x100d3160]
sub eax, dword [ebp - 0x50]
mov ecx, dword [0x100d3164]
sbb ecx, edx
mov dword [0x100d3160], eax
mov dword [0x100d3164], ecx
mov edx, dword [ebp - 0x24]
add edx, 0xcfc0
mov byte [ebp - 7], dl
mov eax, dword [ebp - 0x38]
xor ecx, ecx
add eax, dword [0x100d3150]
adc ecx, dword [0x100d3154]
mov dword [0x100d3150], eax
mov dword [0x100d3154], ecx
mov edx, 0x6386
mov word [ebp - 0xc], dx
jmp case.default.0x1000573a
mov ax, word [0x100d3c78]
mov word [0x100d312c], ax
cmp dword [ebp - 0x2c], 0
jne 0x10005856
mov dword [ebp - 0x144], 1
jmp 0x10005860
mov dword [ebp - 0x144], 0
cmp dword [ebp - 0x44], 0
jne 0x1000587a
xor ecx, ecx
mov dword [ebp - 0x1c0], 1
mov dword [ebp - 0x1bc], ecx
jmp 0x10005885
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c0], xmm0
movzx edx, byte [ebp - 8]
mov eax, edx
imul eax, dword [ebp - 0x144]
cdq
mov esi, eax
mov edi, edx
mov eax, dword [ebp - 0x1bc]
push eax
mov ecx, dword [ebp - 0x1c0]
push ecx
mov edx, dword [ebp - 0x58]
push edx
mov eax, dword [ebp - 0x5c]
push eax
call fcn.100a25b0
add esi, eax
adc edi, edx
mov ecx, dword [0x100d3188]
xor ecx, 0xbab0
mov edx, dword [0x100d318c]
xor edx, 0
mov eax, dword [0x100d319c]
mov ebx, dword [0x100d3120]
sub ebx, dword [0x100d3198]
mov dword [ebp - 0x208], edi
mov edi, dword [0x100d3124]
sbb edi, eax
add ecx, ebx
adc edx, edi
add esi, ecx
mov edi, dword [ebp - 0x208]
adc edi, edx
mov dword [0x100d3120], esi
mov dword [0x100d3124], edi
mov ecx, 0x4de4
mov word [0x100d315c], cx
mov dl, byte [0x100d3c78]
mov byte [0x100d3026], dl
movsx eax, word [0x100d312c]
movzx ecx, byte [0x100d3027]
sub eax, ecx
movsx edx, word [0x100d312c]
sub edx, eax
mov word [0x100d312c], dx
jmp case.default.0x1000573a
movzx eax, byte [0x100d3063]
imul ecx, eax, 0xde
mov dword [ebp - 0x54], ecx
movzx edx, byte [0x100d3063]
mov eax, dword [0x100d3158]
lea ecx, [eax + edx - 0x8731]
mov dword [0x100d3158], ecx
movsx edx, word [ebp - 0x28]
imul eax, edx, 0x9b78
movsx ecx, word [ebp - 0x28]
sub ecx, eax
mov word [ebp - 0x28], cx
movzx edx, word [ebp - 0x1c]
test edx, edx
jne 0x1000599a
xor eax, eax
mov dword [ebp - 0x27c], 1
mov dword [ebp - 0x278], eax
jmp 0x100059a5
xorps xmm0, xmm0
movlpd qword [ebp - 0x27c], xmm0
movzx eax, byte [0x100d304f]
cdq
mov ecx, dword [0x100d31a8]
mov esi, dword [0x100d31ac]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x274], ecx
mov dword [ebp - 0x270], esi
mov edx, dword [ebp - 0x274]
or edx, dword [ebp - 0x270]
jne 0x100059e3
mov dword [ebp - 0x148], 1
jmp 0x100059ed
mov dword [ebp - 0x148], 0
movzx eax, word [ebp - 0xc]
cdq
mov ecx, dword [0x100d3180]
mov edx, dword [0x100d3184]
mov dword [ebp - 0x37c], edx
sub ecx, eax
sub ecx, dword [ebp - 0x27c]
movzx eax, word [ebp - 0x1c]
add eax, dword [0x100d3170]
mov edx, dword [ebp - 0x148]
sub edx, eax
and ecx, edx
mov byte [0x100d3063], cl
mov al, byte [0x100d3c78]
mov byte [0x100d304e], al
mov ecx, dword [ebp - 0x68]
cmp dword [ecx], 0
je 0x10006394
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x284], edx
mov dword [ebp - 0x280], eax
mov ecx, dword [ebp - 0x284]
or ecx, dword [ebp - 0x280]
je 0x10005f70
movsx edx, byte [ebp - 1]
movzx eax, byte [ebp - 2]
cmp edx, eax
jg 0x10005a78
mov dword [ebp - 0x14c], 1
jmp 0x10005a82
mov dword [ebp - 0x14c], 0
movsx ecx, byte [ebp - 1]
cmp ecx, 0x35
jg 0x10005a97
mov dword [ebp - 0x150], 1
jmp 0x10005aa1
mov dword [ebp - 0x150], 0
mov edx, dword [ebp - 0x14c]
cmp edx, dword [ebp - 0x150]
jle 0x10005f6b
cmp dword [ebp - 0x2c], 0
je 0x10005d6f
cmp dword [ebp - 0x54], 0
je 0x10005cdd
cmp dword [0x100d3190], 0
je 0x10005be0
movzx eax, byte [ebp - 5]
mov ecx, dword [0x100d3190]
imul ecx, eax
mov dword [0x100d3190], ecx
movsx edx, word [ebp - 0x18]
movzx eax, byte [ebp - 5]
add edx, eax
jne 0x10005b07
xor ecx, ecx
mov dword [ebp - 0x1f8], 1
mov dword [ebp - 0x1f4], ecx
jmp 0x10005b12
xorps xmm0, xmm0
movlpd qword [ebp - 0x1f8], xmm0
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2d8], edx
mov dword [ebp - 0x2d4], eax
mov ecx, dword [ebp - 0x2d8]
or ecx, dword [ebp - 0x2d4]
jne 0x10005b3e
mov dword [ebp - 0x154], 1
jmp 0x10005b48
mov dword [ebp - 0x154], 0
movzx eax, byte [ebp - 2]
not eax
cdq
mov ecx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x30]
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov esi, eax
mov edi, edx
add esi, dword [ebp - 0x1f8]
adc edi, dword [ebp - 0x1f4]
movzx eax, byte [ebp - 4]
cdq
mov ecx, dword [0x100d31a8]
mov ebx, dword [0x100d31ac]
push edx
push eax
push ebx
push ecx
call fcn.100a25b0
mov ecx, eax
mov ebx, edx
mov eax, dword [ebp - 0x154]
sub eax, dword [0x100d311c]
cdq
sub ecx, eax
sbb ebx, edx
add esi, ecx
adc edi, ebx
mov dword [0x100d3138], esi
mov dword [0x100d313c], edi
mov edx, 0x8e8a
mov word [0x100d3178], dx
movsx eax, byte [ebp - 3]
not eax
mov dword [0x100d3140], eax
mov ecx, dword [0x100d3168]
sub ecx, 0x52d2
movsx eax, word [ebp - 0x18]
cdq
sub eax, ecx
mov word [ebp - 0x18], ax
jmp 0x10005cd8
cmp dword [ebp - 0x48], 0
je 0x10005cd8
movzx edx, byte [ebp - 8]
test edx, edx
jne 0x10005bfe
mov dword [ebp - 0x158], 1
jmp 0x10005c08
mov dword [ebp - 0x158], 0
movsx eax, word [ebp - 0x18]
imul eax, dword [ebp - 0x2c]
movsx ecx, byte [0x100d304e]
mov edx, dword [ebp - 0x158]
sub edx, ecx
add eax, edx
mov ecx, 0x3886b93d
sub ecx, dword [ebp - 0x54]
not ecx
movsx edx, word [0x100d312c]
sub edx, dword [ebp - 0x38]
imul ecx, edx
add eax, ecx
not eax
mov byte [ebp - 7], al
movzx eax, byte [ebp - 5]
cdq
mov ecx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x30]
not ecx
not esi
sub eax, ecx
sbb edx, esi
mov ecx, dword [0x100d3148]
add ecx, 0xe5
mov esi, dword [0x100d314c]
adc esi, 0
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov ecx, eax
mov esi, dword [0x100d31b4]
movsx eax, word [0x100d31b0]
cdq
mov edx, dword [0x100d3188]
sub edx, eax
not edx
sub esi, edx
add ecx, esi
mov word [ebp - 0xc], cx
movsx eax, word [ebp - 0x10]
sar eax, 6
mov dword [ebp - 0x48], eax
mov eax, dword [0x100d3150]
mov edx, dword [0x100d3154]
mov cl, 1
call fcn.100a25f0
mov word [ebp - 0x20], ax
movsx eax, byte [ebp - 1]
cdq
mov ecx, dword [0x100d318c]
push ecx
mov ecx, dword [0x100d3188]
push ecx
push edx
push eax
call fcn.100a25b0
mov ecx, eax
movsx eax, byte [ebp - 1]
cdq
add eax, ecx
mov byte [ebp - 1], al
jmp 0x10005d6a
movzx edx, byte [ebp - 5]
add edx, dword [0x100d3134]
mov eax, dword [0x100d3134]
sub eax, edx
mov dword [0x100d3134], eax
mov eax, dword [0x100d3190]
shl eax, 6
cdq
mov dword [0x100d3198], eax
mov dword [0x100d319c], edx
mov ecx, dword [ebp - 0x24]
add ecx, 0x749be1d5
mov word [ebp - 0x14], cx
mov edx, dword [ebp - 0x24]
imul edx, dword [0x100d3190]
mov eax, dword [ebp - 0x24]
sub eax, edx
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x28c], ecx
mov dword [ebp - 0x288], edx
mov eax, dword [ebp - 0x28c]
or eax, dword [ebp - 0x288]
je 0x10005d54
mov ecx, dword [0x100d3134]
mov dword [ebp - 0x15c], ecx
jmp 0x10005d61
movsx edx, byte [0x100d304e]
mov dword [ebp - 0x15c], edx
mov al, byte [ebp - 0x15c]
mov byte [ebp - 1], al
jmp 0x10005f6b
mov ecx, dword [0x100d3160]
or ecx, dword [0x100d3164]
je 0x10005e2b
movsx edx, word [ebp - 0x10]
test edx, edx
je 0x10005e2b
mov eax, dword [0x100d31a8]
mov ecx, dword [0x100d31ac]
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x290], ecx
mov edx, dword [ebp - 0x294]
or edx, dword [ebp - 0x290]
jne 0x10005dba
movzx eax, word [ebp - 0x1c]
test eax, eax
je 0x10005e2b
movsx eax, byte [ebp - 1]
movsx ecx, byte [ebp - 3]
xor eax, ecx
cdq
mov edx, dword [0x100d3160]
not edx
xor edx, dword [0x100d3188]
not edx
sub eax, edx
mov word [ebp - 0xc], ax
mov eax, dword [ebp - 0x24]
add eax, 0xb1a7
mov word [ebp - 0x14], ax
mov ecx, dword [0x100d3180]
mov edx, dword [0x100d3184]
push 0xfdcfe
push 0x4412553e
push edx
push ecx
call fcn.100a25b0
mov dword [ebp - 0x48], eax
movzx eax, word [ebp - 0x1c]
sar eax, 7
mov dword [0x100d3170], eax
movsx eax, word [ebp - 0x10]
sub eax, 0x78
cdq
mov dword [0x100d31a8], eax
mov dword [0x100d31ac], edx
jmp 0x10005f6b
xor ecx, ecx
je 0x10005e90
movsx edx, word [ebp - 0x20]
imul eax, edx, 0xc51d01d6
mov dword [ebp - 0x54], eax
movzx ecx, byte [0x100d3063]
add ecx, 0x6d23
mov dword [0x100d3140], ecx
movsx edx, word [ebp - 0x20]
mov eax, dword [0x100d31b4]
sub eax, edx
mov dword [0x100d31b4], eax
imul ecx, dword [0x100d311c], 0xa733e401
xor edx, edx
mov dword [0x100d3198], ecx
mov dword [0x100d319c], edx
movsx eax, byte [ebp - 3]
movzx ecx, word [ebp - 0x14]
imul eax, ecx
movsx edx, byte [ebp - 3]
and edx, eax
mov byte [ebp - 3], dl
jmp 0x10005f6b
movzx eax, word [ebp - 0x14]
test eax, eax
je 0x10005ea4
mov dword [ebp - 0x160], 1
jmp 0x10005eae
mov dword [ebp - 0x160], 0
mov ecx, dword [0x100d3170]
cmp ecx, dword [0x100d31b4]
je 0x10005ec8
mov dword [ebp - 0x164], 1
jmp 0x10005ed2
mov dword [ebp - 0x164], 0
mov edx, dword [ebp - 0x160]
cmp edx, dword [ebp - 0x164]
jle 0x10005f6b
movzx eax, word [0x100d3178]
sub eax, 0x4a2d773c
mov byte [0x100d304f], al
mov ecx, dword [0x100d3160]
or ecx, dword [0x100d3164]
jne 0x10005f0e
mov edx, 1
mov word [ebp - 0x76], dx
jmp 0x10005f14
xor eax, eax
mov word [ebp - 0x76], ax
mov cx, word [ebp - 0x76]
mov word [ebp - 0x1c], cx
mov dx, word [0x100d3168]
mov word [ebp - 0xc], dx
movzx eax, byte [ebp - 7]
mov ecx, dword [0x100d3158]
sub ecx, eax
mov edx, dword [0x100d3158]
sub edx, ecx
mov dword [0x100d3158], edx
mov eax, dword [0x100d318c]
push eax
mov ecx, dword [0x100d3188]
push ecx
mov edx, dword [0x100d313c]
push edx
mov eax, dword [0x100d3138]
push eax
call fcn.100a25b0
mov dword [0x100d3138], eax
mov dword [0x100d313c], edx
jmp 0x10006002
cmp dword [ebp - 0x48], 0
je 0x10005f89
movzx eax, byte [ebp - 7]
cdq
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], edx
jmp 0x10005fa1
mov ecx, dword [0x100d3198]
mov edx, dword [0x100d319c]
mov dword [ebp - 0x1e8], ecx
mov dword [ebp - 0x1e4], edx
mov ax, word [ebp - 0x1e8]
mov word [ebp - 0x10], ax
movzx ecx, byte [0x100d3027]
sub ecx, 0x37d9
mov dword [ebp - 0x24], ecx
movsx eax, word [ebp - 0x10]
cdq
sub eax, 0x28b19c40
mov word [ebp - 0x10], ax
mov eax, dword [0x100d311c]
cdq
mov ecx, dword [0x100d3154]
push ecx
mov ecx, dword [0x100d3150]
push ecx
push edx
push eax
call fcn.100a25b0
mov ecx, eax
mov eax, dword [0x100d311c]
cdq
sub eax, ecx
mov dword [0x100d311c], eax
movzx edx, word [ebp - 0xc]
movzx eax, byte [ebp - 8]
sub edx, eax
mov word [ebp - 0xc], dx
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx ecx, ax
mov dword [0x100d3190], ecx
cmp dword [0x100d3190], 0
jge 0x10006026
mov dword [ebp - 0x168], 1
jmp 0x10006030
mov dword [ebp - 0x168], 0
cmp dword [0x100d3190], 0x19
jge 0x10006045
mov dword [ebp - 0x16c], 1
jmp 0x1000604f
mov dword [ebp - 0x16c], 0
mov edx, dword [ebp - 0x168]
cmp edx, dword [ebp - 0x16c]
jg 0x100061ee
push 0
push 0
call fcn.100597c0
add esp, 8
mov dword [0x100d3144], eax
cmp dword [0x100d3144], 0
ja 0x10006184
mov dword [ebp - 0x90], 0x320
movsx eax, byte [0x100d3026]
movsx ecx, word [ebp - 0x10]
imul eax, ecx
add eax, dword [0x100d31b4]
xor edx, edx
mov dword [0x100d3188], eax
mov dword [0x100d318c], edx
imul eax, dword [ebp - 0x48], 0x3c
mov dword [ebp - 0x24], eax
movzx eax, byte [ebp - 2]
cdq
mov ecx, eax
xor ecx, dword [0x100d3138]
movzx eax, byte [ebp - 2]
cdq
or eax, ecx
mov byte [ebp - 2], al
mov eax, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
mov cl, 6
call fcn.100a25f0
mov byte [ebp - 1], al
mov edx, dword [0x100d3120]
sub edx, dword [ebp - 0x5c]
mov word [ebp - 0x14], dx
cmp dword [ebp - 0x90], 0x289
jle 0x10006182
movsx eax, word [0x100d3130]
movzx ecx, byte [ebp - 8]
movzx edx, word [ebp - 0x1c]
not edx
sub ecx, edx
imul eax, ecx
mov dword [0x100d31b4], eax
mov byte [ebp - 8], 0xd2
movsx eax, byte [ebp - 3]
movzx ecx, word [ebp - 0x1c]
add eax, ecx
cdq
mov ecx, 0x788b
sub ecx, dword [0x100d3148]
mov esi, 0
sbb esi, dword [0x100d314c]
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov dword [ebp - 0x44], eax
mov edx, 4
imul eax, edx, 0xa0
mov cx, word [eax + 0x101bcc58]
mov word [ebp - 0x18], cx
movsx edx, word [ebp - 0x10]
mov eax, 4
imul ecx, eax, 0x15
mov dword [ecx + 0x101bcc58], edx
mov edx, dword [ebp - 0x90]
sub edx, 1
mov dword [ebp - 0x90], edx
jmp 0x100060ea
jmp 0x100061e9
movsx eax, word [ebp - 0x10]
test eax, eax
jne 0x10006198
mov dword [ebp - 0x170], 1
jmp 0x100061a2
mov dword [ebp - 0x170], 0
mov ecx, dword [ebp - 0x170]
imul ecx, dword [0x100d31b4]
movzx edx, byte [ebp - 5]
not edx
add ecx, edx
mov byte [ebp - 7], cl
mov byte [0x100d304f], 4
mov byte [0x100d304e], 0x63
movsx eax, byte [ebp - 3]
add eax, 0x225e
cdq
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
xor eax, eax
mov dword [0x100d3180], 8
mov dword [0x100d3184], eax
jmp 0x100062e2
movsx ecx, byte [0x100d3026]
cmp ecx, dword [0x100d3144]
jne 0x10006249
mov eax, dword [ebp - 0x48]
cdq
mov ecx, dword [0x100d3198]
mov esi, dword [0x100d319c]
mov dword [ebp - 0x29c], eax
mov dword [ebp - 0x298], edx
mov dword [ebp - 0x2a4], ecx
mov dword [ebp - 0x2a0], esi
mov edx, dword [ebp - 0x29c]
cmp edx, dword [ebp - 0x2a4]
jne 0x100062e2
mov eax, dword [ebp - 0x298]
cmp eax, dword [ebp - 0x2a0]
jne 0x100062e2
cmp dword [ebp - 0x2c], 0
jne 0x1000625b
mov dword [ebp - 0x174], 1
jmp 0x10006265
mov dword [ebp - 0x174], 0
movzx ecx, word [ebp - 0x1c]
mov edx, dword [ebp - 0x174]
lea eax, [ecx + edx + 0xa587]
test eax, eax
jne 0x10006280
mov byte [ebp - 0x60], 1
jmp 0x10006284
mov byte [ebp - 0x60], 0
mov cl, byte [ebp - 0x60]
mov byte [ebp - 5], cl
movsx edx, word [0x100d312c]
not edx
mov eax, dword [ebp - 0x24]
xor eax, edx
jne 0x100062a0
mov byte [ebp - 0x61], 1
jmp 0x100062a4
mov byte [ebp - 0x61], 0
mov cl, byte [ebp - 0x61]
mov byte [ebp - 6], cl
xor edx, edx
mov dword [0x100d3150], 8
mov dword [0x100d3154], edx
movzx eax, word [ebp - 0x14]
cdq
mov ecx, eax
movzx eax, byte [0x100d3027]
cdq
mov edx, dword [0x100d3168]
not edx
add eax, edx
sub ecx, eax
mov word [0x100d315c], cx
mov byte [ebp - 4], 0xfb
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp + 8]
add ecx, dword [eax]
mov dword [ebp - 0x6c], ecx
push 0
movzx dx, byte [ebp - 8]
movzx eax, dx
push eax
push 0
movzx ecx, word [0x100d3134]
push ecx
call fcn.1005c780
add esp, 0x10
mov byte [0x100d3026], al
movsx edx, byte [0x100d3026]
test edx, edx
je 0x10006383
movsx eax, word [0x100d3130]
cdq
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x380], edx
sub eax, ecx
mov word [0x100d3130], ax
mov eax, dword [0x100d3170]
shl eax, 2
mov byte [ebp - 1], al
movzx eax, word [ebp - 0xc]
add eax, 0x9b58
cdq
add eax, dword [0x100d3168]
adc edx, dword [0x100d316c]
mov dword [0x100d3168], eax
mov dword [0x100d316c], edx
mov ecx, 0x40c5
mov word [ebp - 0x18], cx
movsx eax, word [ebp - 0x20]
cdq
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov word [ebp - 0x20], ax
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0x10]
mov dword [ebp - 0x70], eax
jmp 0x100065e3
mov ecx, dword [0x100d3138]
not ecx
mov byte [ebp - 6], cl
mov edx, dword [0x100d3c78]
mov dword [0x100d3170], edx
movsx eax, byte [ebp - 1]
test eax, eax
je 0x100063bf
movzx ecx, word [ebp - 0x1c]
mov dword [ebp - 0x178], ecx
jmp 0x100063cc
movsx edx, word [0x100d3130]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x178]
cdq
mov dword [0x100d3138], eax
mov dword [0x100d313c], edx
mov eax, dword [ebp - 0x44]
xor ecx, ecx
mov dword [0x100d3168], eax
mov dword [0x100d316c], ecx
imul edx, dword [ebp - 0x44], 0x1c
xor eax, eax
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
mov byte [ebp - 1], 8
movsx ecx, word [ebp - 0x20]
test ecx, ecx
je 0x10006415
movzx edx, byte [0x100d304f]
mov dword [ebp - 0x17c], edx
jmp 0x10006422
movsx eax, byte [0x100d3026]
mov dword [ebp - 0x17c], eax
mov cl, byte [ebp - 0x17c]
mov byte [ebp - 6], cl
xor edx, edx
mov ecx, dword [0x100d31a8]
mov esi, dword [0x100d31ac]
add ecx, dword [ebp - 0x2c]
adc esi, edx
movzx eax, byte [ebp - 4]
not eax
movsx edx, byte [0x100d3026]
add eax, edx
cdq
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov cl, 7
call fcn.100a26c0
mov byte [ebp - 3], al
mov byte [ebp - 7], 0xf4
movsx eax, byte [ebp - 1]
cdq
mov ecx, eax
sub ecx, dword [0x100d3148]
movsx eax, byte [ebp - 1]
cdq
add eax, ecx
mov byte [ebp - 1], al
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0x10]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x54], 0
je 0x100065a0
push 0
mov ecx, dword [0x100d3140]
push ecx
push 0xac
push 0
call fcn.1005a510
add esp, 0x10
movzx edx, ax
mov dword [0x100d311c], edx
cmp dword [0x100d311c], 0
je 0x1000659e
mov eax, dword [0x100d31a0]
mov ecx, dword [0x100d31a4]
mov dword [ebp - 0x394], ecx
sub eax, 0x7007
mov word [ebp - 0x28], ax
mov edx, dword [0x100d31a0]
mov eax, dword [0x100d31a4]
mov dword [ebp - 0x390], eax
mov ecx, 4
imul eax, ecx, 0x3d8
mov dword [eax + 0x10337bc8], edx
mov ecx, dword [0x100d31b4]
sub ecx, dword [0x100d3170]
xor edx, edx
mov eax, dword [0x100d3154]
push eax
mov eax, dword [0x100d3150]
push eax
push edx
push ecx
call fcn.100a25b0
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x2a8], edx
mov ecx, dword [ebp - 0x2ac]
or ecx, dword [ebp - 0x2a8]
jne 0x1000654c
mov dword [ebp - 0x180], 1
jmp 0x10006556
mov dword [ebp - 0x180], 0
mov edx, dword [0x100d3140]
add edx, dword [ebp - 0x180]
xor eax, eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
mov dword [0x100d3158], 1
imul ecx, dword [ebp - 0x38], 0xb5
mov word [ebp - 0xc], cx
push 0xc3921
push 0xdd6f3791
mov edx, dword [0x100d3154]
push edx
mov eax, dword [0x100d3150]
push eax
call fcn.100a25b0
mov dword [ebp - 0x54], eax
jmp 0x100065d7
mov dword [ebp - 0x48], 2
movzx ecx, word [0x100d315c]
sub ecx, 0xc3e8
movzx edx, word [ebp - 0x14]
imul edx, ecx
mov word [ebp - 0x14], dx
movsx eax, word [0x100d312c]
xor eax, 0x470078
mov dword [ebp - 0x24], eax
mov ecx, dword [0x100d3c78]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0x10]
mov dword [ebp - 0x70], eax
movzx ecx, word [ebp - 0x1c]
test ecx, ecx
je 0x10006635
mov edx, dword [0x100d3c78]
xor eax, eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], eax
movsx ecx, word [0x100d3128]
imul ecx, dword [0x100d311c]
mov word [0x100d3128], cx
movzx ecx, byte [ebp - 2]
movzx edx, byte [0x100d304f]
sub ecx, edx
mov al, byte [ebp - 2]
shr al, cl
mov byte [ebp - 2], al
movsx ecx, word [0x100d312c]
sub ecx, 0x74c722ce
mov byte [ebp - 1], cl
jmp 0x10006682
movsx eax, word [ebp - 0x10]
cdq
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x38c], ecx
sub eax, edx
mov word [0x100d312c], ax
mov edx, dword [ebp - 0x5c]
xor edx, 0x5f25e6cd
mov byte [ebp - 3], dl
movzx eax, byte [ebp - 5]
add eax, dword [0x100d31b4]
movzx ecx, byte [ebp - 5]
add ecx, eax
mov byte [ebp - 5], cl
movsx edx, byte [ebp - 1]
mov eax, dword [ebp - 0x38]
lea ecx, [edx + eax - 0x5f024fea]
mov byte [ebp - 1], cl
mov byte [ebp - 5], 2
jmp 0x10006696
mov edx, dword [ebp - 0x6c]
add edx, 4
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x70]
add eax, 4
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x6c]
cmp dword [ecx], 0
je 0x10006fb1
movsx edx, word [ebp - 0x20]
cmp dword [ebp - 0x44], edx
je 0x100066b7
mov dword [ebp - 0x184], 1
jmp 0x100066c1
mov dword [ebp - 0x184], 0
cmp dword [ebp - 0x44], 0x55
je 0x100066d3
mov dword [ebp - 0x188], 1
jmp 0x100066dd
mov dword [ebp - 0x188], 0
mov eax, dword [ebp - 0x184]
cmp eax, dword [ebp - 0x188]
jl 0x100067a2
push 0
push 0
movzx ecx, word [0x100d3174]
push ecx
push 0x83
call fcn.1005c780
add esp, 0x10
mov word [ebp - 0x10], ax
movzx edx, word [ebp - 0x1c]
not edx
test edx, edx
jne 0x1000672b
cmp dword [0x100d3158], 0
jne 0x1000672b
mov dword [ebp - 0x190], 0
jmp 0x10006735
mov dword [ebp - 0x190], 1
movzx eax, byte [0x100d3027]
test eax, eax
je 0x10006752
cmp dword [ebp - 0x24], 0
jne 0x10006752
mov dword [ebp - 0x18c], 1
jmp 0x1000675c
mov dword [ebp - 0x18c], 0
movsx ecx, byte [ebp - 3]
cmp dword [ebp - 0x18c], ecx
je 0x10006774
mov dword [ebp - 0x194], 1
jmp 0x1000677e
mov dword [ebp - 0x194], 0
mov edx, dword [ebp - 0x190]
cmp edx, dword [ebp - 0x194]
jne 0x100067a0
mov eax, dword [0x100d3148]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
xor ecx, ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
jmp 0x10006815
mov edx, dword [0x100d3170]
add edx, 0xc7978301
mov word [ebp - 0xc], dx
movsx eax, word [0x100d312c]
movsx ecx, byte [ebp - 6]
add eax, ecx
mov word [0x100d3178], ax
mov edx, 0xcec5d
mov dword [ebp - 0x40], 0xc47e94ea
mov dword [ebp - 0x3c], edx
movsx eax, word [0x100d3130]
cdq
push 0x7f1f6
push 0x3cbffb59
push edx
push eax
call fcn.100a25b0
mov dword [0x100d3180], eax
mov dword [0x100d3184], edx
xor eax, eax
mov dword [0x100d3150], 1
mov dword [0x100d3154], eax
mov ecx, 8
mov word [0x100d3130], cx
mov byte [ebp - 2], 4
mov edx, dword [0x100d3150]
sub edx, 0x6f34
mov eax, dword [0x100d3140]
sub eax, edx
mov dword [0x100d3140], eax
mov ecx, dword [0x100d3170]
mov dword [0x100d3144], ecx
movzx eax, byte [ebp - 7]
sar eax, 3
cdq
mov dword [0x100d31a8], eax
mov dword [0x100d31ac], edx
movsx eax, byte [0x100d304e]
cdq
mov ecx, eax
add ecx, dword [0x100d3120]
movsx eax, byte [0x100d304e]
cdq
add eax, ecx
mov byte [0x100d304e], al
mov edx, 0x46
mov word [ebp - 0x18], dx
movzx eax, byte [ebp - 2]
mov dword [ebp - 0x198], eax
cmp dword [ebp - 0x198], 4
ja case.default.0x10006895
mov ecx, dword [ebp - 0x198]
jmp dword [ecx*4 + 0x10007170]
mov dx, word [ebp - 0xc]
mov byte [ebp - 4], dl
movsx eax, word [0x100d312c]
cdq
mov ecx, dword [0x100d3180]
mov esi, dword [0x100d3184]
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov ecx, dword [0x100d3180]
mov esi, dword [0x100d3184]
add ecx, eax
adc esi, edx
mov dword [0x100d3180], ecx
mov dword [0x100d3184], esi
movzx edx, word [0x100d315c]
movsx eax, byte [0x100d3026]
imul edx, eax
movzx ecx, word [0x100d315c]
add ecx, edx
mov word [0x100d315c], cx
movsx edx, word [ebp - 0x18]
add edx, dword [ebp - 0x2c]
mov word [ebp - 0x18], dx
mov eax, dword [0x100d3158]
xor ecx, ecx
mov edx, dword [0x100d3180]
mov esi, dword [0x100d3184]
push esi
push edx
push ecx
push eax
call fcn.100a25b0
mov ecx, dword [0x100d3158]
add ecx, eax
mov dword [0x100d3158], ecx
xor edx, edx
mov dword [0x100d3180], 0x1f2e07bc
mov dword [0x100d3184], edx
jmp case.default.0x10006895
imul eax, dword [0x100d3158], 0xf6
xor ecx, ecx
mov edx, dword [0x100d31a8]
mov esi, dword [0x100d31ac]
add edx, eax
adc esi, ecx
mov dword [0x100d31a8], edx
mov dword [0x100d31ac], esi
movsx eax, word [0x100d3128]
add eax, 0x42b7
cdq
mov ecx, dword [0x100d3180]
mov esi, dword [0x100d3184]
add ecx, eax
adc esi, edx
mov dword [0x100d3180], ecx
mov dword [0x100d3184], esi
mov eax, dword [0x100d3134]
cdq
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x4c]
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov dword [0x100d3134], eax
movzx edx, byte [ebp - 4]
test edx, edx
je 0x100069c7
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x19c], eax
jmp 0x100069d4
movsx ecx, word [0x100d3130]
mov dword [ebp - 0x19c], ecx
mov dx, word [ebp - 0x19c]
mov word [ebp - 0x18], dx
mov eax, dword [0x100d3174]
sub eax, dword [0x100d3134]
imul eax, dword [0x100d3174]
mov dword [0x100d3174], eax
jmp case.default.0x10006895
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x30]
not ecx
not edx
mov dword [0x100d31a0], ecx
mov dword [0x100d31a4], edx
movzx eax, byte [0x100d3027]
add eax, dword [ebp - 0x24]
mov byte [0x100d3027], al
mov dword [0x100d3140], 2
movsx ecx, word [0x100d3130]
add ecx, 0x28
mov dword [ebp - 0x48], ecx
movzx eax, word [0x100d315c]
cdq
push 0xc4ef1
push 0xf23c53ae
push edx
push eax
call fcn.100a25b0
mov dword [ebp - 0x24], eax
movsx edx, byte [0x100d304e]
test edx, edx
je 0x10006a71
movzx eax, byte [ebp - 2]
cdq
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1dc], edx
jmp 0x10006a88
mov eax, dword [0x100d31a0]
mov ecx, dword [0x100d31a4]
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1dc], ecx
mov dl, byte [ebp - 0x1e0]
mov byte [0x100d3027], dl
jmp case.default.0x10006895
movsx eax, word [0x100d3130]
cdq
mov ecx, dword [0x100d3180]
mov esi, dword [0x100d3184]
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov ecx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x30]
not ecx
not esi
add ecx, 0xff016e08
adc esi, 0xae96
not ecx
not esi
push esi
push ecx
push edx
push eax
call fcn.100a25b0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
mov byte [0x100d3063], 0xe8
movsx edx, byte [ebp - 3]
mov eax, dword [0x100d311c]
sub eax, edx
jne 0x10006aff
mov dword [ebp - 0x1a0], 1
jmp 0x10006b09
mov dword [ebp - 0x1a0], 0
movsx ecx, byte [ebp - 6]
not ecx
imul edx, ecx, 0xd590
add edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x2c], edx
movsx eax, word [ebp - 0x20]
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
jmp case.default.0x10006895
cmp dword [0x100d3170], 0
jne 0x10006b43
mov dword [ebp - 0x1a4], 1
jmp 0x10006b4d
mov dword [ebp - 0x1a4], 0
movsx eax, byte [ebp - 1]
add eax, dword [ebp - 0x1a4]
mov byte [0x100d3026], al
mov eax, dword [ebp - 0x24]
cdq
mov ecx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x30]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], esi
movsx edx, byte [ebp - 6]
mov eax, 4
imul ecx, eax, 0x921b
mov dword [ecx + 0x101bcef8], edx
mov eax, dword [0x100d3168]
mov edx, dword [0x100d316c]
mov cl, 1
call fcn.100a26c0
mov word [0x100d3178], ax
mov edx, dword [0x100d3c78]
xor eax, eax
mov dword [0x100d3148], edx
mov dword [0x100d314c], eax
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ecx]
and edx, 0x80000000
je 0x10006c6a
mov eax, dword [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0x5c]
push ecx
mov edx, dword [0x100d318c]
push edx
mov eax, dword [0x100d3188]
push eax
call fcn.100a25b0
mov dword [0x100d3188], eax
mov dword [0x100d318c], edx
xor ecx, ecx
mov dword [ebp - 0x40], 4
mov dword [ebp - 0x3c], ecx
movzx edx, byte [0x100d3027]
mov eax, dword [ebp - 0x44]
sub eax, edx
not eax
xor ecx, ecx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov edx, dword [0x100d3198]
mov eax, dword [0x100d319c]
mov dword [ebp - 0x3b0], eax
mov dword [0x100d31b4], edx
push 0x6b9ee
push 0xb2ac569f
mov ecx, dword [ebp - 0x58]
push ecx
mov edx, dword [ebp - 0x5c]
push edx
call fcn.100a25b0
mov ecx, eax
movsx eax, word [ebp - 0x10]
cdq
add eax, ecx
mov word [ebp - 0x10], ax
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx]
and eax, 0xffff
push eax
mov ecx, dword [ebp - 0x7c]
push ecx
push 0
push 0
call fcn.100016b0
add esp, 8
call eax
mov edx, dword [ebp - 0x70]
mov dword [edx], eax
jmp 0x10006e06
push 0x24
push 0xfffffffffffffffd
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x388], ecx
movzx edx, al
push edx
push 0xffffffffffffffae
call fcn.10058a50
add esp, 0x10
movsx eax, al
mov dword [0x100d3174], eax
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x4c]
movzx eax, word [ebp - 0xc]
cdq
mov dword [ebp - 0x2b4], ecx
mov dword [ebp - 0x2b0], esi
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x2b8], edx
mov edx, dword [ebp - 0x2b4]
cmp edx, dword [ebp - 0x2bc]
jne 0x10006cdb
mov eax, dword [ebp - 0x2b0]
cmp eax, dword [ebp - 0x2b8]
jne 0x10006cdb
mov dword [ebp - 0x1a8], 1
jmp 0x10006ce5
mov dword [ebp - 0x1a8], 0
cmp dword [ebp - 0x1a8], 0xff950c28
jl 0x10006d5c
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
sub ecx, 0x37921736
sbb edx, 0
mov dword [0x100d3168], ecx
mov dword [0x100d316c], edx
movzx eax, byte [ebp - 7]
cdq
add eax, 0x78f46eea
mov word [ebp - 0x1c], ax
movsx eax, word [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
mov dword [ebp - 0x2c], ecx
movzx eax, byte [ebp - 4]
cdq
mov ecx, dword [0x100d31a0]
mov esi, dword [0x100d31a4]
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov ecx, dword [0x100d31a0]
mov esi, dword [0x100d31a4]
or ecx, eax
or esi, edx
mov dword [0x100d31a0], ecx
mov dword [0x100d31a4], esi
xor edx, edx
mov dword [0x100d3198], 1
mov dword [0x100d319c], edx
mov eax, dword [0x100d3190]
shl eax, 8
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
movzx eax, word [ebp - 0x1c]
mov ecx, dword [0x100d311c]
sub ecx, eax
mov byte [ebp - 7], cl
movzx edx, word [ebp - 0xc]
shl edx, 2
mov byte [0x100d304e], dl
cmp dword [ebp - 0x44], 0
je 0x10006db2
movsx eax, word [ebp - 0x10]
cdq
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1d4], edx
jmp 0x10006dc9
mov eax, dword [0x100d3188]
mov ecx, dword [0x100d318c]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1d4], ecx
mov dx, word [ebp - 0x1d8]
mov word [0x100d312c], dx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp + 8]
add ecx, dword [eax]
mov dword [ebp - 0x20c], ecx
mov edx, dword [ebp - 0x20c]
add edx, 2
push edx
mov eax, dword [ebp - 0x7c]
push eax
push 0
push 0
call fcn.100016b0
add esp, 8
call eax
mov ecx, dword [ebp - 0x70]
mov dword [ecx], eax
movzx edx, word [ebp - 0xc]
cmp dword [0x100d311c], edx
jg 0x10006e1e
mov dword [ebp - 0x1ac], 1
jmp 0x10006e28
mov dword [ebp - 0x1ac], 0
cmp dword [0x100d311c], 0x1f
jg 0x10006e3d
mov dword [ebp - 0x1b0], 1
jmp 0x10006e47
mov dword [ebp - 0x1b0], 0
mov eax, dword [ebp - 0x1ac]
cmp eax, dword [ebp - 0x1b0]
jg 0x10006ec7
movzx ecx, byte [0x100d3027]
shl ecx, 3
mov byte [ebp - 4], cl
movzx edx, byte [ebp - 7]
mov eax, dword [0x100d311c]
sub eax, edx
mov ecx, dword [0x100d311c]
sub ecx, eax
mov dword [0x100d311c], ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
push 0
push 0x8df4f890
push eax
push edx
call fcn.100a25b0
mov byte [ebp - 1], al
mov ecx, dword [0x100d3180]
mov edx, dword [0x100d3184]
mov dword [ebp - 0x39c], edx
mov dword [ebp - 0x38], ecx
movsx eax, word [0x100d31b0]
cdq
sub eax, 0x13a18db4
sbb edx, 0xf0165
mov dword [0x100d3168], eax
mov dword [0x100d316c], edx
jmp 0x10006f30
mov eax, dword [ebp - 0x48]
not eax
test eax, eax
je 0x10006f30
mov ecx, 0x585a
mov word [ebp - 0x10], cx
mov edx, dword [0x100d3c78]
xor eax, eax
mov dword [0x100d3188], edx
mov dword [0x100d318c], eax
mov ecx, dword [ebp - 0x2c]
and ecx, dword [0x100d3158]
mov byte [ebp - 1], cl
movzx edx, byte [ebp - 5]
sub edx, 0x8c24
mov byte [0x100d3026], dl
mov eax, dword [0x100d3190]
sub eax, 1
mov dword [0x100d3190], eax
mov ecx, dword [0x100d3160]
add ecx, 0x5c6caf23
mov edx, dword [0x100d3164]
adc edx, 0
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x70]
cmp dword [eax], 0
jne 0x10006fac
mov ecx, dword [str._s_s_s]
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x100af724]
mov dword [ebp - 0x328], edx
mov eax, dword [0x100af728]
mov dword [ebp - 0x324], eax
mov ecx, dword [0x100af72c]
mov dword [ebp - 0x320], ecx
mov dx, word [0x100af730]
mov word [ebp - 0x31c], dx
lea eax, [ebp - 0x32c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cdq
mov dword [0x100d3148], eax
mov dword [0x100d314c], edx
mov ecx, dword [0x100d3190]
push ecx
call dword [sym.imp.USER32.dll_GetLastActivePopup]
xor edx, edx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x80], 0
jmp 0x10006fb1
jmp 0x10006684
movzx eax, word [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x80], 0
jne 0x100070a3
movzx ecx, byte [0x100d3027]
test ecx, ecx
jne 0x10006fe0
mov dword [ebp - 0x1b4], 1
jmp 0x10006fea
mov dword [ebp - 0x1b4], 0
mov edx, dword [ebp - 0x54]
xor eax, eax
push eax
push edx
mov ecx, dword [0x100d3124]
push ecx
mov edx, dword [0x100d3120]
push edx
call fcn.100a25b0
mov ecx, eax
mov esi, edx
movsx eax, word [ebp - 0x28]
and eax, dword [ebp - 0x1b4]
cdq
push edx
push eax
push esi
push ecx
call fcn.100a25b0
mov byte [ebp - 2], al
mov edx, dword [0x100d3120]
not edx
mov eax, dword [0x100d31a0]
mov ecx, dword [0x100d31a4]
mov dword [ebp - 0x398], ecx
add edx, eax
mov dword [0x100d311c], edx
movzx edx, byte [0x100d3063]
sar edx, 6
mov byte [ebp - 7], dl
mov eax, dword [0x100d31a0]
mov edx, dword [0x100d31a4]
mov cl, 4
call fcn.100a2610
mov dword [0x100d3188], eax
mov dword [0x100d318c], edx
mov eax, 4
mov word [ebp - 0x10], ax
xor ecx, ecx
mov dword [ebp - 0x50], 0x93
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x7c]
push edx
push 0
push 0
call fcn.10001530
add esp, 8
call eax
push 0x7f
push 0
push 0
call fcn.100012f0
add esp, 8
call eax
jmp 0x100070a8
jmp 0x10004fff
jmp 0x100070da
jmp 0x10007114
jmp 0x1000713f
jmp 0x10007156
mov eax, dword [ebp - 0x80]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret