Function at 0x100337c0
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa4
mov eax, dword [ebp + 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x101ef014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x60], ecx
mov edi, dword [ecx + 8]
xor eax, eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], eax
test edx, edx
je case.0x10033b67.21
mov esi, edx
mov eax, dword [ebp - 0x60]
cmp dword [eax + 0x48], 0
jne 0x10034b8a
mov bl, byte [esi]
movzx edx, bl
cmp edx, 0x65
jle 0x1003397b
lea eax, [edx - 0x66]
cmp eax, 0x4f
ja case.0x10033b67.21
jmp dword [eax*4 + 0x101b7044]
test byte [esi + 4], 0x20
jne 0x10034d96
mov eax, dword [esi + 0x1c]
test eax, eax
js 0x10034259
movzx edi, byte [esi + 2]
movsx ebx, word [esi + 0x20]
mov edx, dword [esi + 0x2c]
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx + 8]
mov esi, dword [ebp - 0x5c]
push esi
push ebx
push eax
call fcn.10035980
add esp, 0xc
test di, di
jne 0x10034df9
mov ebx, esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10156ff0
mov eax, ebx
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret
movsx eax, word [esi + 0x20]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jle 0x10033d85
lea edx, [ecx + 1]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x4e
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov eax, dword [esi + 8]
cmp byte [eax + 1], 0
je 0x1003390b
mov ebx, edi
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0xe8]
xor eax, eax
test ecx, ecx
je 0x100338eb
movsx edx, word [esi + 0x20]
mov edi, dword [ecx + 4]
mov esi, 2
cmp dword [ecx + esi*4], edx
je 0x100338e5
add esi, dword [ecx + esi*4 + 4]
cmp esi, edi
jl 0x100338d6
jmp 0x100338eb
lea eax, [ecx + esi*4]
add eax, 8
mov dword [ecx], 0
mov ecx, dword [ebx]
cmp byte [ecx + 0x57], 0
jne 0x1003390b
mov ecx, dword [ebx + 0x68]
mov edx, dword [ebx + 0x6c]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xff
mov dword [ecx + edx*4 - 4], eax
mov ebx, dword [ebp - 0x5c]
jmp 0x10033861
mov eax, dword [esi + 8]
mov dword [ebp - 0x60], eax
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x10033e7f
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4], 0x75
mov esi, edi
xor edi, edi
mov dword [ecx + edx*4 + 4], edi
mov ebx, dword [ebp - 0x5c]
mov dword [ecx + edx*4 + 8], ebx
mov dword [ecx + edx*4 + 0xc], edi
mov dword [ecx + edx*4 + 0x10], edi
mov edi, esi
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x1003390b
test eax, eax
js 0x10033dc5
lea edx, [eax + eax*4]
shl edx, 2
add edx, dword [edi + 0x68]
mov ecx, edi
push 0
push dword [ebp - 0x60]
call fcn.10035ca0
add esp, 8
jmp 0x1003390b
cmp edx, 0x4d
jne 0x10033b5b
mov ebx, dword [esi + 0x2c]
movsx eax, word [ebx + 0x22]
inc eax
imul eax, dword [esi + 0x1c]
movsx esi, word [esi + 0x20]
inc eax
mov ecx, esi
test esi, esi
js 0x100339a9
mov edx, dword [ebx + 0x1c]
mov ecx, esi
and edx, 0x20
jne 0x10035032
movsx ecx, cx
add eax, ecx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jle 0x100343a5
lea edx, [ecx + 1]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x9d
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
test si, si
js 0x100339f8
mov eax, dword [ebx + 4]
shl esi, 4
cmp byte [eax + esi + 8], 0x45
je 0x10034e90
mov eax, dword [ebp - 0x54]
test eax, eax
jne 0x10033d9f
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x1003390b
mov esi, dword [ebp - 0x60]
movzx ecx, byte [esi + 0x13]
cmp ecx, 7
ja 0x1003390b
mov edx, ecx
inc dl
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0xa0], eax
jmp 0x1003390b
test byte [esi + 7], 1
jne 0x10034e85
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax]
mov dword [ebp - 0x80], ecx
mov cl, byte [ecx + 0x54]
cmp byte [eax + 0x17], 0
jne 0x10033e9a
mov eax, dword [esi + 0x14]
test eax, eax
mov dword [ebp - 0x68], eax
je 0x100342e6
mov ebx, dword [eax]
mov edx, dword [esi + 8]
movzx eax, cl
mov ecx, dword [ebp - 0x80]
push 0
push eax
push ebx
call fcn.10151720
add esp, 0xc
test eax, eax
je 0x10034e72
mov ecx, eax
cmp dword [eax + 0x14], 0
jne 0x10034e72
mov eax, dword [ecx + 4]
bt eax, 0x16
mov edx, dword [ebp - 0x68]
jb 0x10033f46
test eax, 0x280000
mov dword [ebp - 0x64], ecx
je 0x10033aad
test byte [esi + 7], 0x40
jne 0x100341cc
test ebx, ebx
mov dword [ebp - 0x74], ebx
jle 0x10033e45
mov dword [ebp - 0x6c], edi
lea ebx, [edx + 8]
mov dword [ebp - 0x78], 0
xor edi, edi
mov dword [ebp - 0x7c], 0
cmp edi, 0x1f
ja 0x10033b0c
mov edx, dword [ebx]
mov word [ebp - 0x34], 1
mov dword [ebp - 0x44], 0x10075310
mov dword [ebp - 0x40], 0x10075420
mov dword [ebp - 0x30], 0
test edx, edx
je 0x10033b03
lea ecx, [ebp - 0x48]
call fcn.1014d480
cmp word [ebp - 0x34], 0
je 0x10033b0c
mov eax, dword [ebp - 0x78]
bts eax, edi
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x64]
test byte [edx + 4], 0x20
je 0x10033b1b
cmp dword [ebp - 0x7c], 0
je 0x10033b29
inc edi
add ebx, 0x14
cmp dword [ebp - 0x74], edi
jne 0x10033ace
jmp 0x10033c89
mov edx, dword [ebx]
mov ecx, dword [ebp - 0x60]
call fcn.1002f260
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x7c], eax
jmp 0x10033b1b
mov ecx, dword [ebp - 0x60]
mov edx, esi
mov ebx, dword [ebp - 0x5c]
push ebx
push 0
call fcn.10035ea0
add esp, 8
jmp 0x10033861
mov ebx, dword [esi + 0x1c]
jmp 0x10033861
lea eax, [edx - 0x13]
cmp eax, 0x26
ja case.default.0x10033b67
jmp dword [eax*4 + 0x101b6fa8]
mov dword [ebp - 0x70], 0
mov al, 1
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], 0
mov ebx, dword [esi + 0xc]
mov al, byte [ebx]
mov ecx, eax
cmp al, 0xb0
jne 0x10033b8f
mov cl, byte [ebx + 2]
mov dword [ebp - 0x68], ebx
cmp cl, 0x8a
mov dword [ebp - 0x64], edx
mov ebx, edi
je 0x10035067
movzx ecx, cl
cmp ecx, 0xb1
je 0x10035085
lea eax, [ebp - 0x54]
mov edi, dword [ebp - 0x60]
mov ecx, edi
mov edx, dword [ebp - 0x68]
push eax
call fcn.10041210
add esp, 4
mov dword [ebp - 0x7c], eax
mov edx, dword [esi + 0x10]
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
call fcn.10041210
add esp, 4
mov dword [ebp - 0x78], eax
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x1003477b
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x47
mov dword [ecx + eax*4 + 4], 1
mov edx, dword [ebp - 0x5c]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov eax, dword [esi + 4]
shr eax, 0xa
and eax, 1
mov edi, dword [ebx + 0x6c]
add edi, 2
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x68]
push eax
push dword [ebp - 0x74]
push edi
push dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
push edi
push dword [ebp - 0x64]
push dword [esi + 0x10]
call fcn.10041320
add esp, 0x1c
cmp byte [ebp - 0x70], 0
jne 0x10035072
mov eax, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], eax
jle 0x10034796
lea ecx, [eax + 1]
mov dword [ebx + 0x6c], ecx
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x5c
mov dword [ecx + eax*4 + 4], edi
mov edx, dword [ebp - 0x5c]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [ebp - 0x78]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x100339f8
cmp dword [ebp - 0x68], 0
je 0x10034393
cmp dword [ebp - 0x78], 0
mov edi, dword [ebp - 0x6c]
je 0x10034ffb
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx + 0x2c]
lea ebx, [eax + 1]
mov dword [ebp - 0x70], ebx
mov ebx, dword [ebp - 0x74]
add eax, ebx
mov dword [ecx + 0x2c], eax
mov eax, 0xc0
and eax, dword [edx + 4]
jne 0x10034ea3
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x68]
push 3
push 0
push dword [ebp - 0x70]
call fcn.100335e0
add esp, 0xc
cmp ebx, 2
jl 0x10033eec
test byte [esi + 5], 1
mov edx, dword [ebp - 0x64]
jne 0x100347a9
mov eax, dword [ebp - 0x68]
add eax, 8
mov eax, dword [eax]
xor ecx, ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x14], ecx
test eax, eax
je 0x10033d0a
cmp byte [eax], 0xa7
je 0x10034045
test byte [edx + 4], 0x20
mov dword [ebp - 0x64], edx
jne 0x10034157
movzx eax, byte [esi + 2]
mov ecx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x78]
mov edx, edi
push eax
push dword [ebp - 0x64]
push ebx
mov esi, ebx
mov ebx, dword [ebp - 0x5c]
push ebx
push dword [ebp - 0x70]
call fcn.10036050
add esp, 0x14
test esi, esi
je 0x10033861
test edi, edi
jne 0x1003390b
mov ecx, dword [ebp - 0x74]
cmp ecx, 1
jne 0x100346d7
cmp dword [ebp - 0x70], 0
je 0x1003390b
mov edx, dword [ebp - 0x60]
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x1003390b
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov ecx, dword [ebp - 0x70]
mov dword [edx + eax*4 + 0xa0], ecx
jmp 0x1003390b
mov ecx, edi
mov edx, 0x4e
push 0
push dword [ebp - 0x5c]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x100338b0
mov ecx, dword [ebp - 0x60]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x10033a03
mov edx, ecx
inc dl
mov esi, dword [ebp - 0x60]
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0xa0], eax
jmp 0x10033a03
mov eax, dword [edi + 0x6c]
dec eax
jmp 0x10033961
mov dword [ebp - 0x64], edx
mov edx, dword [esi + 0xc]
lea eax, [ebp - 0x54]
mov dword [ebp - 0x6c], edi
mov edi, dword [ebp - 0x60]
mov ecx, edi
push eax
call fcn.10041210
add esp, 4
mov dword [ebp - 0x68], eax
mov edx, dword [esi + 0x10]
lea eax, [ebp - 0x58]
mov ecx, edi
mov esi, dword [ebp - 0x6c]
push eax
call fcn.10041210
add esp, 4
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x100346f1
lea edx, [ecx + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov byte [edx + ecx*4], bl
mov word [edx + ecx*4 + 2], 0
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x68]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [ebp - 0x5c]
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], 0
mov byte [edx + ecx*4 + 1], 0
jmp 0x100339f8
mov dword [ebp - 0x7c], 0
test edx, edx
je 0x100344ff
mov edx, dword [ebp - 0x60]
mov eax, dword [edx + 0x1c]
sub eax, ebx
jge 0x100343ea
mov eax, dword [edx + 0x2c]
lea ecx, [eax + 1]
mov dword [ebp - 0x70], ecx
add eax, ebx
mov dword [edx + 0x2c], eax
mov dword [ebp - 0x78], 0
mov edx, dword [ebp - 0x64]
jmp 0x10033cb4
xor eax, eax
mov ecx, edi
mov edx, 0x75
push eax
push dword [ebp - 0x5c]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x10033951
mov dword [ebp - 0x6c], edi
lea edi, [ebp - 0x48]
mov word [edi + 0x14], 2
mov dword [edi + 4], 0x10075310
mov dword [edi + 8], 0x10075420
mov dword [edi + 0x18], 0
mov ebx, ecx
mov ecx, edi
mov edx, esi
call fcn.1014d480
mov ecx, ebx
cmp word [edi + 0x14], 0
mov edi, dword [ebp - 0x6c]
je 0x10033a50
mov ecx, dword [ebp - 0x60]
mov edx, esi
push 0xffffffffffffffff
call fcn.100414c0
add esp, 4
mov ebx, eax
jmp 0x10033861
cmp ebx, 1
mov edx, dword [ebp - 0x64]
je 0x10033ced
jmp 0x10033d0a
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne 0x100356d1
cmp bl, 0x8a
jne 0x10033f28
test byte [esi + 5], 0x10
je 0x10033f28
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
cmp eax, 1
jne 0x10035116
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10156ff0
mov ecx, dword [ebp - 0x60]
mov edx, esi
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.1004a9b0
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x60]
mov esi, dword [ecx + 8]
test eax, eax
mov dword [ebp - 0x64], esi
jne 0x1003513b
mov ebx, dword [edx]
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0x78], eax
dec eax
mov dword [ebp - 0x74], eax
mov dword [ecx + 0x38], eax
test esi, esi
je 0x10033f8c
mov edi, dword [edx + 8]
mov edx, edi
mov esi, dword [ebp - 0x5c]
push esi
call fcn.100337c0
mov edx, dword [ebp - 0x68]
add esp, 4
cmp eax, esi
mov esi, dword [ebp - 0x64]
jne 0x100347e9
cmp ebx, 2
jl 0x10033fff
dec ebx
add edx, 0x1c
mov dword [ebp - 0x68], edx
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x100347b4
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x33
mov edx, dword [ebp - 0x5c]
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [ebp - 0x74]
mov dword [ecx + eax*4 + 8], edx
xor edx, edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov ecx, dword [ebp - 0x60]
cmp dword [ecx + 8], 0
mov edx, dword [ebp - 0x68]
je 0x10033ff9
mov edi, dword [edx]
mov edx, edi
mov esi, dword [ebp - 0x5c]
push esi
call fcn.100337c0
mov edx, dword [ebp - 0x68]
add esp, 4
cmp eax, esi
mov esi, dword [ebp - 0x64]
jne 0x1003484b
add edx, 0x14
dec ebx
jne 0x10033f95
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x1003515b
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x6c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
mov edi, dword [ebp - 0x78]
cmp byte [eax], 0x50
je 0x100349a7
mov ecx, dword [esi + 0xc]
neg edi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x1003470a
mov eax, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + edi*4], eax
jmp 0x1003390b
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x10033d0a
cmp byte [eax + 0x2b], 1
jne 0x10033d0a
mov dword [ebp - 0x6c], edi
add eax, 0x34
mov edx, dword [ebp - 0x80]
mov ecx, dword [eax]
lea eax, [ecx + 0x18]
cmp dword [ecx], edx
jne 0x10034063
mov edi, dword [ecx + 8]
mov eax, dword [edi]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x10035170
mov eax, dword [ebp - 0x64]
mov ebx, dword [eax + 0x20]
call dword [section..00cfg]
lea eax, [ebp - 0x14]
lea edx, [ebp - 0x48]
push eax
push edx
push ebx
push dword [ebp - 0x74]
push edi
call ecx
add esp, 0x14
test eax, eax
je 0x10035170
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x10035762
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, eax
and ebx, 0x3fffffff
add ebx, 0x29
cmp dword [ebp - 0x80], 0
je 0x1003576c
mov ecx, dword [ebp - 0x80]
mov edx, ebx
push 0
call fcn.10157570
add esp, 4
mov edi, eax
test eax, eax
je 0x10035170
push ebx
push 0
mov ebx, edi
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x64]
movsd xmm0, qword [eax + 0x20]
movsd qword [edi + 0x20], xmm0
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmmword [edi], xmm0
movups xmmword [edi + 0x10], xmm1
lea ecx, [edi + 0x28]
mov dword [ebp - 0x68], ecx
mov dword [edi + 0x20], ecx
mov ebx, dword [eax + 0x20]
test ebx, ebx
je 0x10035877
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
inc eax
push eax
push ebx
push dword [ebp - 0x68]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x48]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [edi + 8], eax
mov edx, edi
or byte [edi + 4], 0x10
jmp 0x10035173
cmp dword [ebp - 0x7c], 0
je 0x10034517
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x100347d0
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea edx, [eax + eax*4]
mov byte [ecx + edx*4], 0x55
xorps xmm0, xmm0
movups xmmword [ecx + edx*4 + 1], xmm0
mov dword [ecx + edx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x10033d17
test eax, eax
js 0x10034772
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 1], 0
jne 0x1003473c
mov edx, dword [ebp - 0x7c]
test edx, edx
je 0x10033d17
lea eax, [ecx + eax*4]
inc eax
mov dword [eax + 0xf], edx
mov byte [eax], 0xfe
jmp 0x10033d17
bt eax, 0x13
jb 0x100341e1
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
test byte [eax + 0x20], 0x80
jne 0x10033aad
push esi
push str.unsafe_use_of__T__
push dword [ebp - 0x60]
call fcn.100463a0
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
add esp, 0xc
jmp 0x10033aad
cmp edx, 0x47
je 0x100351a4
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x10034329
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x4b
xor edx, edx
mov dword [ecx + eax*4 + 4], edx
mov ebx, dword [ebp - 0x5c]
mov dword [ecx + eax*4 + 8], ebx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x10033861
xor eax, eax
mov ecx, dword [ebp - 0x60]
mov edx, esi
push eax
push eax
mov ebx, dword [ebp - 0x5c]
push ebx
call fcn.1003a1a0
add esp, 0xc
jmp 0x10033861
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x34]
test eax, eax
jns 0x100343fd
mov dword [ebp - 0x6c], edi
movzx edi, word [esi + 0x20]
test di, di
js 0x1003529b
movzx ecx, di
mov edx, dword [esi + 0x2c]
mov esi, dword [edx + 4]
shl ecx, 4
mov dword [ebp - 0x64], edx
test byte [edx + 0x1c], 0x20
jne 0x100352a2
movzx edx, word [esi + ecx + 0xe]
movsx ebx, di
sub ebx, eax
movzx edx, dx
test dl, 0x60
jne 0x100352d3
cmp byte [esi + ecx + 8], 0x45
jne 0x10033861
xor eax, eax
mov esi, dword [ebp - 0x6c]
mov ecx, esi
mov edx, 0x51
push eax
mov edi, dword [ebp - 0x5c]
push edi
push ebx
call fcn.1002fb80
add esp, 0xc
mov ecx, esi
mov edx, 0x57
xor eax, eax
push eax
push eax
push edi
call fcn.1002fb80
add esp, 0xc
mov ebx, edi
jmp 0x10033861
xor ebx, ebx
jmp 0x10033a60
mov eax, dword [esi + 0x28]
movsx ebx, word [esi + 0x22]
cmp byte [eax], 0
je 0x1003471a
cmp byte [eax + 1], 0
jne 0x100348b4
cmp dword [esi + 0x2c], 0
jne case.0x1003381b.167
movsx eax, word [esi + 0x20]
mov ecx, edi
mov edx, 0x5e
mov ebx, dword [ebp - 0x5c]
push ebx
push eax
push dword [esi + 0x1c]
jmp 0x10034c92
xor eax, eax
mov ecx, edi
mov edx, 0x4b
push eax
mov ebx, dword [ebp - 0x5c]
push ebx
push eax
call fcn.10016c40
jmp 0x10034251
mov dword [ebp - 0x64], edx
mov edx, dword [esi + 0xc]
lea eax, [ebp - 0x54]
mov ecx, dword [ebp - 0x60]
push eax
call fcn.10041210
add esp, 4
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jle 0x1003492d
lea edx, [ecx + 1]
mov dword [edi + 0x6c], edx
mov edx, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov byte [edx + ecx*4], bl
mov word [edx + ecx*4 + 2], 0
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
jmp 0x10033e3b
mov dword [ebp - 0x70], 0
mov edi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x74]
jmp 0x10033cd7
mov ecx, edi
mov edx, 0x9d
push 0
push dword [ebp - 0x5c]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x100339e2
mov eax, dword [esi + 0x28]
test eax, eax
je 0x10035165
movsx ebx, word [esi + 0x22]
test ebx, ebx
js 0x10035165
cmp dword [eax + 0x24], ebx
jle 0x10035165
add ebx, dword [eax + 0xc]
add ebx, dword [eax + 0x18]
jmp 0x10033861
mov ecx, dword [edx + 0x20]
mov dword [ebp - 0x70], ecx
add ecx, ebx
mov dword [edx + 0x20], ecx
mov dword [edx + 0x1c], eax
jmp 0x10033e70
dec eax
jmp 0x10033837
mov dword [ebp - 0x6c], edi
mov edx, dword [esi + 0xc]
mov ecx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x5c]
push edi
call fcn.100337c0
add esp, 4
cmp eax, edi
jne 0x10035356
mov eax, dword [esi + 8]
mov bl, byte [eax]
test bl, bl
je 0x1003493c
inc eax
xor edi, edi
mov dl, 0x43
mov ecx, dword [ebp - 0x6c]
mov esi, edi
shl esi, 8
movzx edi, bl
movzx edi, byte [edi + 0x101af7e8]
or edi, esi
mov dh, 0x42
cmp edi, 0x74657873
jle 0x1003445a
cmp edi, 0x74657874
jne 0x10034476
jmp 0x100344b6
cmp edi, 0x63686172
je 0x100344b6
cmp edi, 0x626c6f62
je 0x1003517e
cmp edi, 0x636c6f62
je 0x100344b6
cmp edi, 0x7265616c
setne dh
cmp edi, 0x666c6f61
setne bl
and bl, dh
cmp edi, 0x646f7562
setne dh
test dh, bl
jne 0x100344a0
cmp dl, 0x43
je 0x1003519d
mov esi, edi
and esi, 0xffffff
mov dh, dl
cmp esi, 0x696e74
je 0x100348ad
mov bl, byte [eax]
inc eax
mov dl, dh
test bl, bl
jne 0x10034435
movsx eax, dh
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x100349f9
lea edx, [esi + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*4], 0x58
mov ebx, dword [ebp - 0x5c]
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
jmp 0x10033861
mov dword [ebp - 0x70], 0
test byte [ecx + 4], 0x20
mov dword [ebp - 0x78], 0
je 0x10033d17
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 8]
mov dword [ebp - 0x7c], eax
jmp 0x10034161
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax]
mov dword [ebp - 0x84], ecx
mov ecx, dword [eax + 0x38]
mov edx, dword [esi + 0x14]
mov ebx, dword [edx]
mov dword [ebp - 0x68], ecx
dec ecx
mov dword [ebp - 0x70], ecx
mov dword [eax + 0x38], ecx
mov ecx, dword [esi + 0xc]
xor esi, esi
mov eax, 0
mov dword [ebp - 0x7c], ecx
test ecx, ecx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x74], ebx
jne 0x10035700
mov dword [ebp - 0x78], eax
lea eax, [ebx - 1]
cmp ebx, 2
jl 0x10034654
lea ebx, [edx + 0x1c]
xor ecx, ecx
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x8c], eax
mov eax, dword [ebx - 0x14]
cmp dword [ebp - 0x7c], 0
mov dword [ebp - 0x90], ecx
jne 0x1003575a
mov esi, eax
mov edi, dword [ebp - 0x60]
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x88], eax
dec eax
mov dword [edi + 0x38], eax
push 0x10
push eax
mov dword [ebp - 0x80], esi
push esi
push edi
call fcn.10040dd0
add esp, 0x10
cmp dword [edi + 8], 0
je 0x100345cf
mov esi, dword [ebx]
mov ecx, edi
mov edx, esi
mov edi, dword [ebp - 0x5c]
push edi
call fcn.100337c0
add esp, 4
cmp eax, edi
jne 0x10034a25
mov edi, dword [ebp - 0x6c]
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x10034a0a
lea ecx, [eax + 1]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 9
xor esi, esi
mov dword [ecx + eax*4 + 4], esi
mov edx, dword [ebp - 0x70]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], esi
mov dword [ecx + eax*4 + 0x10], esi
mov edx, dword [ebp - 0x64]
mov ecx, dword [edi + 0xc]
mov esi, dword [ebp - 0x88]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10034644
mov eax, dword [edi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
mov esi, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x90]
add ecx, 2
add ebx, 0x28
mov eax, dword [ebp - 0x8c]
cmp ecx, eax
jl 0x1003457a
jmp 0x10034654
mov edx, edi
push esi
call fcn.10032440
mov edx, dword [ebp - 0x64]
add esp, 4
jmp 0x10034625
mov ebx, edi
test byte [ebp - 0x74], 1
je 0x100356d8
mov ecx, dword [ebp - 0x60]
cmp dword [ecx + 8], 0
je 0x10034686
lea eax, [eax + eax*4]
mov esi, dword [edx + eax*4 + 8]
mov edx, esi
mov edi, dword [ebp - 0x5c]
push edi
call fcn.100337c0
add esp, 4
cmp eax, edi
jne 0x10034a7f
mov edx, dword [ebp - 0x78]
test edx, edx
jne 0x10035740
mov eax, dword [ebx]
cmp byte [eax + 0x57], 0
mov esi, dword [ebp - 0x68]
jne 0x10035750
mov eax, dword [ebx + 0x68]
mov ecx, dword [ebx + 0x6c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
cmp byte [eax], 0x50
je 0x100349c4
mov ecx, dword [ebx + 0xc]
neg esi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x100356f0
mov eax, dword [ebx + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + esi*4], eax
jmp 0x100339f8
mov eax, dword [ebp - 0x60]
cmp dword [eax + 0x1c], ecx
jge 0x1003390b
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x70]
mov dword [eax + 0x20], ecx
jmp 0x1003390b
mov ecx, esi
mov edx, dword [ebp - 0x64]
push dword [ebp - 0x5c]
push dword [ebp - 0x68]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x100339f8
mov edx, esi
push edi
call fcn.10032440
add esp, 4
jmp 0x1003390b
add ebx, dword [eax + 0xc]
jmp 0x10033861
test byte [esi + 5], 2
je 0x10034c58
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x100337f4
jmp case.0x10033b67.21
lea edx, [ecx + eax*4]
mov ecx, edi
push 0xfffffffffffffffe
push dword [ebp - 0x7c]
call fcn.10035ca0
add esp, 8
jmp 0x10033d17
mov edx, dword [esi + 0xc]
movzx eax, byte [edx]
cmp eax, 0x9b
jne 0x100357b8
mov ecx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x5c]
push ebx
push 1
jmp 0x10033b46
mov eax, dword [edi + 0x6c]
dec eax
jmp 0x100341a1
mov ecx, ebx
mov edx, 0x47
push 0
push dword [ebp - 0x5c]
push 1
call fcn.10016c40
add esp, 0xc
jmp 0x10033c12
mov ecx, ebx
mov edx, 0x5c
push dword [ebp - 0x78]
push dword [ebp - 0x5c]
push edi
jmp 0x100346fd
mov eax, dword [ebp - 0x68]
add eax, 0x1c
jmp 0x10033cf3
mov ecx, esi
mov edx, 0x33
push 0
push dword [ebp - 0x74]
push dword [ebp - 0x5c]
call fcn.10016c40
add esp, 0xc
jmp 0x10033fcf
xor eax, eax
mov ecx, edi
mov edx, 0x55
push eax
push eax
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x1003418d
test edi, edi
je 0x100347f7
test byte [edi + 6], 0x40
jne 0x100349e1
mov dword [ebp - 0x70], 0x51
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jle 0x10034ad9
lea edi, [edx + 1]
mov dword [ecx + 0x6c], edi
mov edi, dword [ecx + 0x68]
lea edx, [edx + edx*4]
mov ecx, dword [ebp - 0x70]
mov byte [edi + edx*4], cl
mov word [edi + edx*4 + 2], 0
mov dword [edi + edx*4 + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [edi + edx*4 + 8], eax
xor eax, eax
mov dword [edi + edx*4 + 0xc], eax
mov dword [edi + edx*4 + 0x10], eax
mov byte [edi + edx*4 + 1], 0
mov edx, dword [ebp - 0x68]
jmp 0x10033f8c
test edi, edi
je 0x10034859
test byte [edi + 6], 0x40
jne 0x100349ed
mov dword [ebp - 0x70], 0x51
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jle 0x10034aef
lea edi, [edx + 1]
mov dword [ecx + 0x6c], edi
mov edi, dword [ecx + 0x68]
lea edx, [edx + edx*4]
mov ecx, dword [ebp - 0x70]
mov byte [edi + edx*4], cl
mov word [edi + edx*4 + 2], 0
mov dword [edi + edx*4 + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [edi + edx*4 + 8], eax
xor eax, eax
mov dword [edi + edx*4 + 0xc], eax
mov dword [edi + edx*4 + 0x10], eax
mov byte [edi + edx*4 + 1], 0
mov edx, dword [ebp - 0x68]
jmp 0x10033ff9
mov dh, 0x44
jmp 0x100344c3
mov ecx, edi
mov edi, dword [eax + 0x14]
shl ebx, 4
lea edx, [edi + ebx]
mov esi, dword [edx]
movsx edx, word [edi + ebx + 0xe]
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x6c], ecx
mov edx, 0x5e
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [eax + 8]
call fcn.1002fb80
add esp, 0xc
test esi, esi
je 0x1003390b
movzx eax, word [edi + ebx + 0xc]
test ax, ax
js 0x1003390b
mov ecx, dword [esi + 4]
shl eax, 4
cmp byte [ecx + eax + 8], 0x45
jne 0x1003390b
xor eax, eax
mov ecx, dword [ebp - 0x6c]
mov edx, 0x57
jmp 0x10034c8c
mov edx, dword [esi + 8]
mov ecx, edi
mov ebx, dword [ebp - 0x5c]
push ebx
push 0
call fcn.10157750
jmp 0x10033b4b
mov ecx, edi
mov edx, dword [ebp - 0x64]
push 0
push dword [ebp - 0x5c]
jmp 0x100346fc
mov dh, 0x43
mov ecx, dword [ebp - 0x6c]
jmp 0x100344c3
mov esi, dword [esi + 8]
add esi, 2
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, eax
and ebx, 0x3fffffff
mov eax, edi
mov dword [ebp - 0x6c], edi
lea edi, [ebx - 1]
mov ecx, dword [eax]
mov edx, esi
push edi
call fcn.101579e0
add esp, 4
mov esi, eax
shr edi, 0x1f
lea eax, [ebx + edi]
dec eax
sar eax, 1
mov edi, dword [ebp - 0x6c]
mov ecx, edi
mov edx, 0x4d
push 0
mov ebx, dword [ebp - 0x5c]
push ebx
push eax
call fcn.1002fb80
add esp, 0xc
mov ecx, edi
mov edx, eax
push 0xfffffffffffffffa
push esi
call fcn.1003a120
jmp 0x10033b4b
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x10034026
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 1
jmp 0x10034026
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x100346b8
mov ecx, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 1
jmp 0x100346b8
mov dword [ebp - 0x70], 0x50
jmp 0x100347fe
mov dword [ebp - 0x70], 0x50
jmp 0x10034860
mov edx, 0x58
push 0
push eax
mov ebx, dword [ebp - 0x5c]
push ebx
jmp 0x10034338
mov ecx, edi
mov edx, 9
xor eax, eax
push eax
push dword [ebp - 0x70]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x10034606
test esi, esi
je 0x10034a33
test byte [esi + 6], 0x40
jne 0x10034b05
mov edx, 0x51
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x10034b19
lea edi, [esi + 1]
mov dword [ecx + 0x6c], edi
mov ecx, dword [ecx + 0x68]
lea esi, [esi + esi*4]
mov byte [ecx + esi*4], dl
mov word [ecx + esi*4 + 2], 0
mov dword [ecx + esi*4 + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [ecx + esi*4 + 8], eax
xor eax, eax
mov dword [ecx + esi*4 + 0xc], eax
mov dword [ecx + esi*4 + 0x10], eax
mov byte [ecx + esi*4 + 1], 0
jmp 0x100345cf
test esi, esi
je 0x10034a8d
test byte [esi + 6], 0x40
jne 0x10034b0f
mov edx, 0x51
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jle 0x10034b2c
lea edi, [esi + 1]
mov dword [ecx + 0x6c], edi
mov ecx, dword [ecx + 0x68]
lea esi, [esi + esi*4]
mov byte [ecx + esi*4], dl
mov word [ecx + esi*4 + 2], 0
mov dword [ecx + esi*4 + 4], eax
mov eax, dword [ebp - 0x5c]
mov dword [ecx + esi*4 + 8], eax
xor eax, eax
mov dword [ecx + esi*4 + 0xc], eax
mov dword [ecx + esi*4 + 0x10], eax
mov byte [ecx + esi*4 + 1], 0
jmp 0x10034686
mov edx, dword [ebp - 0x70]
push 0
push dword [ebp - 0x5c]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x10034843
mov edx, dword [ebp - 0x70]
push 0
push dword [ebp - 0x5c]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x100348a5
mov edx, 0x50
jmp 0x10034a38
mov edx, 0x50
jmp 0x10034a92
push 0
push dword [ebp - 0x5c]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x100345cf
push 0
push dword [ebp - 0x5c]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x10034686
mov esi, dword [esi + 0xc]
test byte [esi + 5], 0x20
jne 0x10034b3f
mov ecx, dword [esi + 8]
xor eax, eax
cmp byte [ecx + 4], 0
sete al
mov ecx, edi
mov edx, 0x47
push 0
mov ebx, dword [ebp - 0x5c]
push ebx
push eax
jmp 0x10034c92
xor edx, edx
cmp bl, 0x2d
sete dl
or edx, 0x34
mov dword [ebp - 0x74], 0x80
mov al, 1
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x78], 0
jmp 0x10033b81
test byte [esi + 6], 0x80
jne 0x10033801
mov ecx, dword [ebp - 0x60]
mov edx, esi
push dword [ebp - 0x5c]
call fcn.1016f7c0
add esp, 4
test eax, eax
js 0x10033801
jmp 0x10033ee5
mov dword [ebp - 0x6c], edi
mov eax, dword [ebp - 0x60]
mov al, byte [eax + 0x17]
mov byte [ebp - 0x64], al
mov eax, dword [esi + 0x28]
test eax, eax
je 0x10034d1b
cmp byte [eax], 0
je 0x10034e63
cmp byte [eax + 1], 0
je 0x10034d1b
mov ecx, dword [eax + 0x14]
movsx edx, word [esi + 0x22]
shl edx, 4
movsx esi, word [ecx + edx + 0xe]
mov ecx, dword [ebp - 0x6c]
mov edx, 0x5e
push dword [ebp - 0x5c]
push esi
push dword [eax + 8]
call fcn.1002fb80
jmp 0x10034702
mov edi, dword [esi + 0xc]
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x10034c18
mov cl, byte [edi + 2]
mov edx, dword [ebp - 0x60]
cmp byte [edx + 0x1a], cl
jbe 0x10034c2d
mov ebx, dword [ebp - 0x60]
mov ecx, ebx
mov edx, edi
call fcn.1004a9b0
mov dword [edi + 0x1c], eax
mov cl, byte [ebx + 0x1a]
mov byte [edi + 2], cl
mov edx, dword [edi]
cmp dl, 0xb0
movzx ecx, cl
cmovne ecx, edx
cmp cl, 0x8a
je 0x10034e2d
movzx ecx, cl
cmp ecx, 0xb1
jne 0x10034e5e
lea ecx, [edi + 0x14]
jmp 0x10034e33
mov edx, dword [esi + 0xc]
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x5c]
push esi
call fcn.100337c0
add esp, 4
cmp eax, esi
je 0x10034c83
mov ecx, edi
mov edx, 0x51
push 0
push dword [ebp - 0x5c]
push eax
call fcn.1002fb80
add esp, 0xc
xor eax, eax
mov ecx, edi
mov edx, 0xb3
push eax
push eax
mov ebx, dword [ebp - 0x5c]
push ebx
call fcn.1002fb80
jmp 0x10034251
mov edx, dword [esi + 0xc]
lea eax, [ebp - 0x54]
mov ecx, dword [ebp - 0x60]
push eax
call fcn.10041210
add esp, 4
lea ecx, [esi + 0x10]
mov edx, dword [ecx]
lea ecx, [edx + 0xc]
test byte [edx + 5], 0x20
jne 0x10034cb1
mov ecx, dword [edx + 8]
mov cl, byte [ecx + 4]
xor ebx, ebx
mov byte [ebp - 0x64], cl
test cl, cl
setne bl
mov cl, byte [esi + 2]
mov byte [ebp - 0x68], cl
mov esi, edi
mov ecx, edi
mov edx, 0x5b
push ebx
push dword [ebp - 0x5c]
push eax
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x100339f8
cmp byte [ebp - 0x64], 0
sete cl
cmp byte [ebp - 0x68], 0x2d
sete dl
xor dl, cl
movzx ecx, dl
mov edx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov byte [edx + eax*4 + 1], 0xfd
mov dword [edx + eax*4 + 0x10], ecx
jmp 0x100339f8
mov ecx, dword [ebp - 0x6c]
mov edx, 0x14
mov edi, dword [ebp - 0x5c]
push edi
push 0
push dword [esi + 0x1c]
call fcn.1002fb80
add esp, 0xc
mov dword [ebp - 0x68], eax
mov ebx, dword [ebp - 0x60]
mov byte [ebx + 0x17], 0
mov edx, dword [esi + 0xc]
mov ecx, ebx
push edi
call fcn.100337c0
add esp, 4
mov cl, byte [ebp - 0x64]
mov byte [ebx + 0x17], cl
cmp eax, edi
je 0x10034d6c
mov ecx, dword [ebp - 0x6c]
mov edx, 0x51
push 0
push dword [ebp - 0x5c]
push eax
call fcn.1002fb80
add esp, 0xc
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
mov ecx, 0x101f2320
cmp byte [edx + 0x57], 0
jne 0x10034d8e
mov ecx, dword [ebp - 0x68]
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [ebp - 0x6c]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
jmp 0x100339f8
mov edx, dword [esi + 0xc]
mov ecx, dword [ebp - 0x60]
push dword [ebp - 0x5c]
call fcn.100337c0
add esp, 4
mov ebx, eax
movsx ecx, word [esi + 0x20]
mov al, 0x44
test ecx, ecx
js 0x10034dce
mov edx, dword [esi + 0x2c]
cmp word [edx + 0x22], cx
jle 0x10034dce
mov eax, dword [edx + 4]
shl ecx, 4
mov al, byte [eax + ecx + 8]
cmp al, 0x42
jl 0x10033861
movzx eax, al
lea esi, [eax + eax]
add esi, 0x101b44be
mov ecx, edi
mov edx, 0x60
push 0
push 1
push ebx
call fcn.1002fb80
add esp, 0xc
mov ecx, edi
mov edx, eax
push 0xffffffffffffffff
jmp 0x1003499c
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
mov eax, 0x101f2320
cmp byte [edx + 0x57], 0
jne 0x10034e1b
mov eax, dword [ecx + 0x68]
mov ecx, dword [ecx + 0x6c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
cmp byte [eax], 0x5e
jne 0x1003390b
mov word [eax + 2], di
jmp 0x1003390b
mov ecx, dword [edi + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x1c]
cmp edx, ecx
je 0x10034e53
push ecx
push edx
push str._d_columns_assigned__d_values
push dword [ebp - 0x60]
call fcn.100463a0
add esp, 0x10
mov eax, dword [edi + 0x1c]
movsx ebx, word [esi + 0x20]
add ebx, eax
jmp 0x10033861
xor ecx, ecx
inc ecx
jmp 0x10034e37
movsx ecx, word [esi + 0x22]
add ecx, dword [eax + 0xc]
mov dword [ebp - 0x5c], ecx
jmp 0x100339f8
push esi
push str.unknown_function:__T__
push dword [ebp - 0x60]
call fcn.100463a0
jmp 0x10034702
mov eax, dword [esi + 0x2c]
mov ebx, dword [eax + 0x38]
jmp 0x10033861
xor eax, eax
mov ecx, edi
mov edx, 0x57
push eax
push eax
push dword [ebp - 0x5c]
jmp 0x10034bf9
mov ecx, dword [ebp - 0x68]
mov ecx, dword [ecx + 8]
movzx edx, byte [ecx]
cmp edx, 0xa9
je 0x10034ec0
cmp edx, 0xa7
jne 0x10033cc2
mov byte [ecx + 2], al
jmp 0x10033cc2
mov ebx, edi
mov edi, dword [ebp - 0x60]
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x64], eax
lea ecx, [eax - 1]
mov dword [ebp - 0x68], ecx
add eax, 0xfffffffe
mov dword [ebp - 0x78], eax
mov dword [edi + 0x38], eax
mov ecx, ebx
mov edx, 0x4b
xor eax, eax
push eax
push dword [ebp - 0x5c]
xor eax, eax
push eax
call fcn.1002fb80
add esp, 0xc
mov ecx, edi
mov edx, esi
push dword [ebp - 0x78]
push dword [ebp - 0x68]
call fcn.1005f230
add esp, 8
mov ecx, ebx
mov edx, 0x47
xor eax, eax
push eax
push dword [ebp - 0x5c]
push 1
call fcn.1002fb80
add esp, 0xc
mov esi, ebx
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebp - 0x64]
mov ebx, eax
neg eax
mov edx, dword [ecx + 0x38]
add edx, dword [ecx + 0x3c]
js 0x100350c1
mov edx, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + eax*4], edx
xor eax, eax
mov edi, esi
mov ecx, esi
mov edx, 0x56
push eax
push eax
push dword [ebp - 0x5c]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [esi + 0xc]
xor eax, eax
inc eax
sub eax, ebx
mov edx, dword [ecx + 0x38]
add edx, dword [ecx + 0x3c]
js 0x100350d1
mov edx, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + eax*4], edx
jmp 0x1003390b
xor eax, eax
mov ecx, edi
mov dword [ebp - 0x64], edx
mov edx, 0x47
push eax
mov ebx, dword [ebp - 0x5c]
push ebx
push 1
call fcn.1002fb80
add esp, 0xc
mov edx, dword [esi + 0xc]
lea eax, [ebp - 0x54]
mov ecx, dword [ebp - 0x60]
push eax
call fcn.10041210
add esp, 4
mov ecx, edi
mov edx, dword [ebp - 0x64]
xor esi, esi
push esi
push esi
xor esi, esi
push eax
call fcn.1002fb80
add esp, 0xc
mov dword [ebp - 0x64], eax
mov ecx, edi
mov edx, 0x47
push esi
push ebx
push esi
call fcn.1002fb80
add esp, 0xc
mov edx, dword [edi]
mov eax, dword [edi + 0x6c]
mov ecx, 0x101f2320
cmp byte [edx + 0x57], 0
jne 0x10034d8e
mov ebx, edi
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [edi + 0x68]
jmp 0x10034d8e
cmp dword [ebp - 0x74], 1
jne 0x10035975
mov eax, dword [ebp - 0x60]
mov al, byte [eax + 0x13]
test al, al
jne 0x100350d9
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x2c]
inc ecx
mov dword [ebp - 0x70], ecx
mov dword [eax + 0x2c], ecx
mov dword [ebp - 0x78], 0
mov edi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x74]
jmp 0x10033e77
mov dword [ebp - 0x6c], edi
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x68], ecx
test si, si
je 0x100350f3
mov ecx, dword [ebp - 0x68]
lea edi, [ecx + 0xe]
xor ecx, ecx
mov dword [ebp - 0x64], esi
movzx edx, word [edi]
bt edx, 5
sbb cx, 0xffff
add edi, 0x10
dec dword [ebp - 0x64]
jne 0x1003504f
jmp 0x100350f5
mov ecx, dword [ebp - 0x68]
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
jmp 0x1003508b
xor eax, eax
mov ecx, ebx
mov edx, 0x47
push eax
push dword [ebp - 0x5c]
push eax
jmp 0x10034bf9
mov ecx, dword [ebp - 0x68]
add ecx, 0x14
mov ecx, dword [ecx]
cmp dword [ecx], 2
jl 0x10033baf
cmp al, 0xb0
jne 0x100350a0
mov eax, dword [ebp - 0x68]
mov al, byte [eax + 2]
cmp al, 0x8a
je 0x100351fc
movzx eax, al
cmp eax, 0xb1
jne 0x1003526d
mov eax, dword [ebp - 0x68]
add eax, 0x14
jmp 0x10035205
mov edx, esi
push eax
call fcn.10032440
add esp, 4
jmp 0x10034f44
mov edx, esi
push eax
jmp 0x1003470d
dec al
mov ecx, dword [ebp - 0x60]
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0xa0]
mov dword [ebp - 0x70], eax
jmp 0x10035020
xor ecx, ecx
mov edx, esi
shl edx, 4
mov edi, dword [ebp - 0x68]
test byte [edi + edx + 0xe], 0x20
je 0x1003510e
mov edx, esi
sub edx, ecx
add dx, word [ebx + 0x24]
mov ecx, edx
mov edi, dword [ebp - 0x6c]
jmp 0x100339a9
mov ecx, dword [ebp - 0x60]
cmp dword [ecx + 0x24], 0
jne 0x100339f8
push 1
push eax
push str.sub_select_returns__d_columns___expected__d
push dword [ebp - 0x60]
call fcn.100463a0
add esp, 0x10
jmp 0x100339f8
dec eax
cmp eax, 4
jbe switch.0x10035272
mov eax, dword [ebp - 0x68]
mov edx, dword [eax + 8]
mov ecx, dword [ebp - 0x60]
push dword [ebp - 0x5c]
call fcn.100337c0
jmp 0x10033ee2
mov eax, 0x101f2320
jmp 0x1003401a
push esi
push str.misuse_of_aggregate:__T__
jmp 0x10034e78
mov edx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x74]
jmp 0x10033d0a
mov dh, 0x41
cmp dl, 0x43
je 0x1003534e
movzx esi, dl
cmp esi, 0x45
mov ecx, dword [ebp - 0x6c]
je 0x100344b6
jmp 0x10034476
mov dh, 0x45
jmp 0x100344b6
mov ebx, edi
mov eax, dword [ebp - 0x60]
cmp dword [eax + 0x7c], 0
je 0x1003532c
mov al, byte [esi + 1]
cmp al, 2
jne 0x100351cc
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx + 0x78]
test eax, eax
cmove eax, ecx
mov byte [eax + 0x15], 1
mov al, byte [esi + 1]
cmp al, 4
jne 0x10035306
mov esi, dword [esi + 8]
xor edi, edi
mov ecx, ebx
mov edx, 0x46
push edi
push 4
push edi
call fcn.1002fb80
add esp, 0xc
mov ecx, ebx
mov edx, eax
push edi
push esi
call fcn.1003a120
jmp 0x10035640
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x14]
add eax, 0x1c
mov eax, dword [eax]
mov edi, dword [eax]
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x70], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x6c], ecx
mov edx, dword [eax + 0x38]
mov ecx, edx
mov dword [ebp - 0x8c], edx
lea ecx, [edx - 1]
mov dword [ebp - 0x90], ecx
mov dword [eax + 0x38], ecx
cmp dword [eax + 0x24], 0
jne 0x100339f8
mov eax, dword [ebp - 0x6c]
mov al, byte [eax]
mov ecx, eax
cmp al, 0xb0
jne 0x1003524a
mov ecx, dword [ebp - 0x6c]
mov cl, byte [ecx + 2]
cmp cl, 0x8a
je 0x10035371
movzx ecx, cl
cmp ecx, 0xb1
jne 0x100356b7
mov ecx, dword [ebp - 0x6c]
add ecx, 0x14
jmp 0x1003537a
xor edi, edi
inc edi
jmp 0x10035209
jmp dword [eax*4 + 0x101b7184]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x1c]
cmp byte [eax], 0xa7
jne 0x1003590a
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax + 8]
call fcn.100369a0
jmp 0x100357ff
not eax
jmp 0x10033ee5
xor edx, edx
test di, di
je 0x1003577a
mov dword [ebp - 0x68], 0
movzx ebx, word [esi + edx + 0xe]
bt ebx, 5
mov ebx, dword [ebp - 0x68]
sbb bx, 0xffff
mov dword [ebp - 0x68], ebx
add edx, 0x10
cmp ecx, edx
jne 0x100352b4
jmp 0x10035781
lea eax, [esi + ecx]
bt edx, 8
jb 0x100356bf
add esi, ecx
add esi, 0xe
mov ecx, edx
or ecx, 0x100
mov word [esi], cx
test dl, dl
js 0x1003595d
and ecx, 0xfe7f
mov word [esi], cx
jmp 0x10033861
xor ebx, ebx
inc ebx
xor edi, edi
mov ecx, dword [ebp - 0x60]
cmp dword [ecx + 0x7c], edi
movsx eax, al
mov edx, 0x713
cmove edx, ebx
push edi
push edi
push dword [esi + 8]
push eax
call fcn.100527c0
jmp 0x10035133
mov eax, dword [ebp - 0x60]
cmp byte [eax + 0x12], 0
jne 0x100351b3
push str.RAISE___may_only_be_used_within_a_trigger_program
push dword [ebp - 0x60]
call fcn.100463a0
add esp, 8
jmp 0x100356d1
mov ecx, dword [ebp - 0x6c]
jmp 0x100344b6
mov ecx, dword [ebp - 0x6c]
mov edx, 0x51
push 0
push dword [ebp - 0x5c]
push eax
call fcn.1002fb80
add esp, 0xc
jmp 0x10034420
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
mov ecx, dword [ecx]
cmp edi, ecx
jne case.0x1003381b.177
mov ecx, dword [esi + 4]
mov dword [ebp - 0x84], ecx
mov ebx, dword [ebp - 0x64]
cmp bl, 0x37
movzx edx, bl
mov ecx, 0x38
mov dword [ebp - 0xa0], edx
cmovne ecx, edx
cmp bl, 0x39
mov edx, 0x36
cmovne edx, ecx
cmp bl, 0x34
mov ecx, 0x35
cmovne ecx, edx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x98], 0
mov ecx, dword [ebp - 0x68]
cmp byte [ecx], 0x8a
mov dword [ebp - 0x94], 0
jne 0x100353f1
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x68]
call fcn.1004a9b0
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x6c]
mov al, byte [eax]
shr dword [ebp - 0x84], 0xa
cmp al, 0x8a
jne 0x1003540d
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x6c]
call fcn.1004a9b0
mov dword [ebp - 0x98], eax
and dword [ebp - 0x84], 1
mov ecx, dword [ebp - 0x70]
mov edx, 0x47
push 0
push dword [ebp - 0x5c]
push 1
call fcn.1002fb80
add esp, 0xc
lea eax, [edi - 1]
mov dword [ebp - 0xa4], eax
neg edi
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x7c], 0
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x88], 0
je 0x1003548f
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
mov eax, 0x101f2320
cmp byte [ecx + 0x57], 0
jne 0x10035486
mov eax, dword [ebp - 0x88]
lea eax, [eax + eax*4]
shl eax, 2
mov ecx, dword [ebp - 0x70]
add eax, dword [ecx + 0x68]
mov ecx, dword [ebp - 0x70]
mov ecx, dword [ecx + 0x6c]
mov dword [eax + 8], ecx
mov ebx, dword [ebp - 0x60]
mov ecx, ebx
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x94]
mov edi, dword [ebp - 0x7c]
push edi
call fcn.1016fb70
add esp, 0x10
mov esi, eax
mov ecx, ebx
mov edx, dword [ebp - 0x6c]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x98]
push edi
call fcn.1016fb70
add esp, 0x10
mov edi, eax
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x6c]
mov dword [ebp - 0x88], eax
movzx eax, byte [ebp - 0x80]
mov edx, dword [ebp - 0x4c]
mov ecx, ebx
push dword [ebp - 0x84]
push dword [ebp - 0x74]
push dword [ebp - 0x90]
mov dword [ebp - 0xac], edi
push edi
mov dword [ebp - 0xb0], esi
push esi
mov dword [ebp - 0x9c], eax
push eax
push dword [ebp - 0x50]
call fcn.10041320
add esp, 0x1c
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x10035539
mov ecx, dword [ebp - 0x60]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x10035539
mov edx, ecx
inc dl
mov ebx, dword [ebp - 0x60]
mov byte [ebx + 0x13], dl
mov dword [ebx + ecx*4 + 0xa0], eax
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x1003555d
mov ecx, dword [ebp - 0x60]
movzx ecx, byte [ecx + 0x13]
cmp ecx, 7
ja 0x1003555d
mov edx, ecx
inc dl
mov ebx, dword [ebp - 0x60]
mov byte [ebx + 0x13], dl
mov dword [ebx + ecx*4 + 0xa0], eax
cmp byte [ebp - 0x80], 0x38
je 0x1003556c
cmp dword [ebp - 0x9c], 0x36
jne 0x10035592
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0xa4]
jge 0x10035592
mov ecx, dword [ebp - 0x70]
mov edx, 0x3a
xor eax, eax
push eax
push eax
push eax
call fcn.1002fb80
add esp, 0xc
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x7c]
lea ebx, [eax + ecx]
cmp byte [ebp - 0x78], 0
je 0x100355bd
mov ecx, dword [ebp - 0x70]
mov edx, 0x5c
push dword [ebp - 0xac]
push dword [ebp - 0x5c]
push dword [ebp - 0xb0]
jmp 0x100355cc
mov ecx, dword [ebp - 0x70]
mov edx, 0x47
xor eax, eax
push eax
push dword [ebp - 0x5c]
push eax
call fcn.1002fb80
add esp, 0xc
cmp ebx, 0xffffffff
je 0x10035648
cmp byte [ebp - 0x80], 0x35
jne 0x100355fe
mov ecx, dword [ebp - 0x70]
mov edx, 0x33
push 0
push dword [ebp - 0x90]
push dword [ebp - 0x5c]
call fcn.1002fb80
add esp, 0xc
mov al, 0x35
jmp 0x10035628
mov ecx, dword [ebp - 0x70]
mov edx, 9
xor eax, eax
push eax
push dword [ebp - 0x90]
push eax
call fcn.1002fb80
add esp, 0xc
cmp ebx, 0xfffffffe
mov eax, dword [ebp - 0x9c]
cmove eax, dword [ebp - 0xa0]
mov dword [ebp - 0x80], eax
inc dword [ebp - 0x7c]
jmp 0x1003544d
push str.row_value_misused
push dword [ebp - 0x60]
call fcn.100463a0
add esp, 8
jmp 0x100339f8
mov eax, dword [ebp - 0x70]
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
mov ecx, 0x101f2320
cmp byte [edx + 0x57], 0
jne 0x1003566d
mov ecx, dword [ebp - 0x88]
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov edx, dword [ebp - 0x70]
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax + 0xc]
neg dword [ebp - 0x8c]
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x100357a2
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x6c]
mov ecx, dword [ecx + 0x40]
mov edx, dword [ebp - 0x8c]
mov dword [ecx + edx*4], eax
cmp byte [ebp - 0x64], 0x34
jne 0x100339f8
mov ecx, dword [ebp - 0x70]
mov edx, 0x13
push 0
mov eax, dword [ebp - 0x5c]
push eax
jmp 0x1003507f
xor ecx, ecx
inc ecx
jmp 0x1003537e
push dword [eax]
push str.generated_column_loop_on___s_
push dword [ebp - 0x60]
call fcn.100463a0
add esp, 0xc
xor ebx, ebx
jmp 0x10033861
xor eax, eax
mov ecx, ebx
mov edx, 0x4b
push eax
push dword [ebp - 0x5c]
push eax
call fcn.1002fb80
jmp 0x10034b37
mov edx, ebx
push esi
call fcn.10032440
add esp, 4
jmp 0x100339f8
mov dword [ebp - 0x6c], edi
xor eax, eax
mov esi, dword [ebp - 0x84]
mov ecx, esi
mov edx, dword [ebp - 0x7c]
push eax
push eax
call fcn.10001810
add esp, 8
mov edi, eax
cmp byte [esi + 0x57], 0
je 0x1003587e
test edi, edi
je 0x100339f8
mov ecx, dword [ebp - 0x84]
mov edx, edi
call fcn.1014c9e0
jmp 0x100339f8
mov ecx, dword [ebp - 0x84]
call fcn.1014c9e0
jmp 0x10034691
mov eax, 0x101f2320
jmp 0x100346af
mov dword [ebp - 0x38], eax
jmp 0x1003458f
mov ebx, 0x29
jmp 0x100340c4
mov ecx, ebx
xor edx, edx
call fcn.10143580
jmp 0x100340dd
mov dword [ebp - 0x68], 0
movzx edx, word [esi + ecx + 0xe]
test dl, 0x20
jne 0x10035793
mov edi, dword [ebp - 0x68]
jmp 0x10034295
sub edi, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x64]
add di, word [ebx + 0x24]
jmp 0x10034295
mov edx, dword [ebp - 0x70]
push dword [ebp - 0x8c]
call fcn.10032440
add esp, 4
jmp 0x1003569a
mov ebx, edi
cmp eax, 0x99
jne 0x100358bf
mov edx, dword [edx + 8]
mov ecx, ebx
mov ebx, dword [ebp - 0x5c]
push ebx
push 1
jmp 0x10034923
mov eax, dword [ebp - 0x68]
mov edx, dword [eax + 8]
mov ecx, dword [ebp - 0x60]
push 0xffffffffffffffff
push dword [eax + 0x1c]
call fcn.10049570
jmp 0x100357fc
mov eax, dword [ebp - 0x68]
mov edx, dword [eax + 8]
xor ecx, ecx
push 0xffffffffffffffff
push dword [eax + 0x1c]
call fcn.10031230
add esp, 8
mov ecx, dword [ebp - 0x64]
jmp 0x10034b56
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax + 8]
call fcn.100439a0
mov dword [ebp - 0x60], 0x101cdd2d
cmp al, 0x41
jl 0x1003582a
movzx eax, al
mov eax, dword [eax*4 + 0x101b4448]
mov dword [ebp - 0x60], eax
xor edi, edi
mov esi, dword [ebp - 0x64]
mov ecx, esi
mov edx, 0x75
push edi
mov ebx, dword [ebp - 0x5c]
push ebx
push edi
call fcn.1002fb80
add esp, 0xc
mov ecx, esi
mov edx, eax
push edi
push dword [ebp - 0x60]
jmp 0x1003499d
xorps xmm0, xmm0
lea edx, [ebp - 0x48]
movups xmmword [edx], xmm0
movups xmmword [edx + 0x10], xmm0
movups xmmword [edx + 0x20], xmm0
mov dword [edx + 0x30], 0
mov byte [edx], 0x9d
mov eax, dword [ebp - 0x68]
mov dword [edx + 0x14], eax
jmp 0x1003514b
xor eax, eax
jmp 0x10034132
lea eax, [ebp - 0x54]
mov ecx, dword [ebp - 0x60]
mov esi, edi
mov edx, edi
push eax
call fcn.1003a350
add esp, 4
test edi, edi
je 0x1003592e
mov ecx, edi
mov edx, dword [ecx + 4]
test edx, 0x82000
je 0x1003591a
bt edx, 0x13
jb 0x100358b1
add ecx, 0xc
jmp 0x100358b7
mov ecx, dword [ecx + 0x14]
add ecx, 8
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1003589b
jmp 0x1003592e
lea edx, [ebp - 0x48]
mov byte [edx], 0x9b
mov dword [edx + 4], 0x10800
mov dword [edx + 8], 0
lea eax, [ebp - 0x54]
mov edi, dword [ebp - 0x60]
mov ecx, edi
push eax
call fcn.10041210
add esp, 4
mov dword [ebp - 0x64], eax
mov edx, dword [esi + 0xc]
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
call fcn.10041210
add esp, 4
mov ecx, ebx
mov edx, 0x6b
push dword [ebp - 0x5c]
push dword [ebp - 0x64]
jmp 0x1003507f
xor eax, eax
mov ecx, dword [ebp - 0x64]
mov edx, 0x4b
push eax
jmp 0x10034b5d
mov bl, byte [ecx]
mov byte [ecx + 2], bl
mov byte [ecx], 0xb0
mov dword [ecx + 0x1c], eax
and edx, 0xffffdfff
mov dword [ecx + 4], edx
xorps xmm0, xmm0
lea esi, [ebp - 0x48]
movups xmmword [esi], xmm0
xor eax, eax
mov dword [esi + 0x30], eax
movups xmmword [esi + 0x20], xmm0
movups xmmword [esi + 0x10], xmm0
mov byte [esi], 0x35
mov dword [esi + 0xc], edi
mov dword [ebp - 0x54], eax
mov eax, edi
mov edi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x74]
jmp 0x1003455d
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
push ebx
push eax
call fcn.1016f910
add esp, 8
movzx ecx, word [esi]
jmp 0x100352f8
mov edi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x74]
jmp 0x10033e54