Function at 0x3003eb08
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x790
mov eax, dword [0x3001d1b0]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x644], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x670], eax
mov eax, dword [ebp + 0x20]
push ebx
mov dword [ebp - 0x648], eax
mov eax, dword [ebp + 0x24]
push esi
mov esi, dword [ebp + 8]
push edi
mov ebx, ecx
mov dword [ebp - 0x760], eax
mov eax, dword [ebp + 0x28]
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x64c], ebx
mov dword [ebp - 0x720], esi
mov dword [ebp - 0x62c], eax
mov dword [ebp - 0x628], edi
mov dword [ebp - 0x69c], edi
call fcn.301ff16b
push dword [ebx + 4]
or dword [ebp - 0x6a8], 0xffffffff
lea ecx, [ebp - 0x77c]
mov dword [ebp - 0x674], edi
mov dword [ebp - 0x6b8], edi
mov dword [ebp - 0x6d0], edi
mov dword [ebp - 0x6f0], edi
mov dword [ebp - 0x66c], edi
mov dword [ebp - 0x668], edi
mov dword [ebp - 0x6d4], edi
mov dword [ebp - 0x704], edi
mov dword [ebp - 0x714], edi
mov dword [ebp - 0x6e4], edi
mov dword [ebp - 0x728], edi
mov dword [ebp - 0x710], edi
mov dword [ebp - 0x6e8], edi
mov dword [ebp - 0x680], edi
mov dword [ebp - 0x6d8], edi
mov dword [ebp - 0x708], edi
mov dword [ebp - 0x690], edi
mov dword [ebp - 0x658], edi
mov dword [ebp - 0x72c], edi
mov dword [ebp - 0x730], edi
mov dword [ebp - 0x630], edi
mov dword [ebp - 0x70c], edi
mov dword [ebp - 0x6f4], edi
mov dword [ebp - 0x660], edi
mov dword [ebp - 0x65c], edi
mov dword [ebp - 0x6fc], edi
mov dword [ebp - 0x718], edi
call fcn.300300e8
push dword [ebx + 4]
lea ecx, [ebp - 0x624]
call fcn.30030915
push dword [ebx + 4]
lea ecx, [ebp - 0x75c]
call fcn.300300e8
push dword [ebx + 4]
lea ecx, [ebp - 0x78c]
call fcn.300300e8
lea ecx, [ebp - 0x6cc]
call fcn.3002d6ae
mov dword [ebp - 0x67c], edi
mov edi, dword [ebp + 0x1c]
and edi, 0x40
je 0x3003ec8d
mov eax, dword [esi]
mov dword [ebp - 0x6a4], eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x6a4]
mov dword [ebp - 0x6a0], eax
call fcn.30026c1f
mov dword [ebp - 0x67c], eax
mov esi, dword [ebp - 0x648]
xor eax, eax
mov dword [ebp - 0x6dc], eax
mov dword [ebp - 0x6b0], eax
mov dword [esi], eax
mov dword [esi + 0x48], eax
mov dword [ebp - 0x678], eax
call fcn.300fa130
mov ecx, dword [ebp - 0x644]
mov dword [ebp - 0x724], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x664], eax
mov eax, dword [ecx]
call dword [eax + 0x168]
xor edx, edx
inc edx
test byte [ebx + 0x2a], dl
mov dword [ebp - 0x6ec], eax
je 0x3003ee70
test edi, edi
je 0x3004239b
mov ecx, dword [ebp - 0x62c]
and dword [esi + 0x24], 0
or dword [esi + 0x74], edx
mov dword [esi + 0x20], edx
call fcn.30030124
cmp dword [ebp - 0x67c], 0xffffffff
je 0x3003ed23
cmp dword [ebp - 0x67c], 0
je 0x3003ed17
cmp dword [ebp - 0x67c], edx
je 0x3003ed51
test byte [ebp + 0x1c], 1
je 0x3004239b
jmp 0x3003ed51
push 0x2d
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
cmp dword [ebp + 0x14], 0x7fff
je 0x3003ed5a
mov ecx, dword [ebp - 0x670]
mov eax, dword [ecx]
push 0x2d
call dword [eax + 8]
sub dword [ebp + 0x14], eax
cmp dword [ebp + 0x14], 0x7fff
jne 0x3003ed64
push 0xb
pop edi
mov esi, pe_nt_image_headers32
jmp 0x3003ed8b
mov ecx, dword [ebp - 0x670]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, eax
mov eax, dword [ebp + 0x14]
cdq
idiv ecx
push 0xb
pop edi
cmp eax, edi
jge 0x3003ed80
mov edi, eax
mov esi, pe_nt_image_headers32
cmp edi, esi
jb 0x3003ed8b
mov edi, esi
xor ebx, ebx
push ebx
push edi
push esi
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x644]
lea ecx, [ebp - 0x6a4]
call fcn.30026fd4
lea ecx, [ebp - 0x20c]
sub eax, ecx
sar eax, 1
cmp edi, eax
jge 0x3003edfc
cmp eax, esi
jb 0x3003edbc
mov eax, esi
cmp eax, 1
jne 0x3003edd7
cmp word [ebp - 0x20c], 0x30
jne 0x3003edd7
mov dword [ebp - 0x6a4], ebx
mov dword [ebp - 0x6a0], ebx
push ebx
push eax
push esi
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x644]
lea ecx, [ebp - 0x6a4]
call fcn.30026fd4
lea ecx, [ebp - 0x20c]
sub eax, ecx
sar eax, 1
mov esi, dword [ebp - 0x62c]
lea ecx, [ebp - 0x20c]
push ecx
mov ecx, esi
call fcn.300303ae
cmp eax, ebx
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [esi]
movzx edx, word [eax]
xor ecx, ecx
dec edx
js 0x3003ee33
movzx ecx, word [eax + 2]
cmp cx, 0x60c
jae 0x3003ee38
movzx eax, cx
jmp 0x3003ee47
push dword [ebp - 0x644]
push ecx
call fcn.30027428
movzx eax, ax
cmp ax, 0x2d
jne 0x3004239b
cmp dword [ebp - 0x67c], ebx
jne 0x3004239b
mov ecx, esi
call fcn.30030124
push 0x30
call fcn.30030436
jmp 0x30041e7b
mov edi, dword [ebp - 0x64c]
movzx eax, word [edi + 0x10]
xor ebx, ebx
test byte [ebp + 0x1c], 0x40
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x650], ebx
mov dword [ebp - 0x734], ebx
je 0x3003ef39
mov eax, dword [ebp - 0x648]
mov ecx, dword [ebp - 0x62c]
mov dword [eax + 0x24], ebx
call fcn.30030124
lea ecx, [ebp - 0x6a4]
call fcn.30026c1f
cmp eax, 0xffffffff
je 0x3003eecc
dec eax
neg eax
sbb eax, eax
and eax, 2
mov dword [ebp - 0x68c], eax
jmp 0x3003eed6
mov dword [ebp - 0x68c], 1
cmp byte [edi + 0x2c], 0
mov esi, dword [ebp - 0x68c]
mov dword [ebp - 0x67c], esi
jne 0x3003ef03
cmp byte [edi + 0x2d], 0
jne 0x3003ef03
cmp esi, 1
jne 0x3003ef90
and byte [ebp - 0x69d], 0x7f
jmp 0x3003ef90
lea eax, [ebp - 0x6b0]
push eax
lea eax, [ebp - 0x67c]
push eax
lea esi, [ebp - 0x6a4]
call fcn.300425eb
cmp eax, ebx
mov dword [ebp - 0x628], eax
jl 0x3004239b
and byte [ebp - 0x69d], 0x7f
mov esi, dword [ebp - 0x67c]
jmp 0x3003ef90
test byte [edi + 0x28], 8
je 0x3004239b
mov ecx, dword [ebp - 0x62c]
mov eax, dword [ecx]
movzx eax, word [eax]
push 3
mov dword [ebp - 0x734], eax
pop esi
lea eax, [ebp - 0x77c]
push eax
mov dword [ebp - 0x68c], esi
call fcn.30030164
cmp eax, ebx
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov ecx, dword [ebp - 0x62c]
call fcn.30030124
and dword [ebp - 0x6a4], 0
and dword [ebp - 0x6a0], 0
test byte [ebp + 0x1c], 1
jne 0x3003efb3
cmp dword [ebp - 0x68c], 2
jne 0x3003efb3
mov al, byte [edi + 0x1e]
cmp al, byte [edi + 0x1c]
jne 0x3003efb3
mov al, byte [edi + 0x22]
cmp al, byte [edi + 0x20]
je 0x3004239b
movzx eax, byte [edi + esi + 0x1c]
add eax, dword [edi + 0x18]
movzx ecx, byte [edi + esi + 0x20]
add ecx, eax
cmp dword [ebp - 0x68c], 1
mov dword [ebp - 0x634], eax
mov dword [ebp - 0x6f8], ecx
jne 0x3003f00d
test byte [edi + 0x28], 1
jne 0x3003efe6
cmp dword [ebp - 0x6b0], 0
je 0x3003f00d
mov ecx, dword [ebp - 0x62c]
push 0x2d
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov ecx, dword [ebp - 0x6f8]
mov eax, dword [ebp - 0x634]
or dword [ebp - 0x6b4], 0xffffffff
or dword [ebp - 0x6e0], 0xffffffff
and word [ebp - 0x6cc], 0
and dword [ebp - 0x67c], 0
cmp eax, ecx
jae 0x3004235f
mov edi, dword [ebp - 0x648]
mov esi, dword [ebp - 0x644]
mov eax, dword [ebp - 0x634]
movzx ebx, byte [eax]
and dword [ebp - 0x688], 0
inc dword [ebp - 0x634]
lea eax, [ebx - 1]
cmp eax, 0x5e
mov dword [ebp - 0x63c], ebx
ja case.0x3003f06d.35
movzx eax, byte [eax + 0x30042516]
jmp dword [eax*4 + 0x3004244a]
cmp dword [ebp - 0x680], 0
jne case.0x3003f06d.35
mov dword [ebp - 0x6d0], 2
jmp case.0x3003f06d.35
cmp dword [ebp - 0x680], 0
jne case.0x3003f06d.35
mov dword [ebp - 0x6d0], 1
jmp case.0x3003f06d.35
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
movzx eax, ax
mov dword [ebp - 0x718], eax
mov dword [ebp - 0x66c], 1
jmp case.0x3003f06d.35
mov eax, dword [ebp - 0x650]
test eax, eax
jle 0x3003f0e6
dec dword [ebp - 0x634]
mov dword [ebp - 0x638], eax
jmp 0x3003f803
mov ecx, esi
mov dword [ebp - 0x6f0], 1
call fcn.3013dd76
jmp 0x30041b4f
xor eax, eax
inc eax
or dword [edi + 0x74], eax
test word [ebp + 0x1c], 0x200
mov dword [edi + 0x20], eax
je 0x3003f12f
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx eax, word [eax]
mov dword [ebp - 0x6e0], eax
jmp case.0x3003f06d.35
test word [ebp + 0x1c], 0x200
jne case.0x3003f06d.35
mov eax, dword [esi]
push 0xa
mov ecx, esi
call dword [eax + 0x150]
test eax, eax
je 0x3003f153
cmp dword [edi + 0x3c], 0
jge 0x3003f153
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx eax, word [eax]
mov dword [edi + 0x3c], eax
lea ecx, [ebp - 0x77c]
push dword [ebp - 0x62c]
call fcn.30030350
jmp 0x30041b5b
mov eax, dword [ebp - 0x634]
and dword [edi + 0x24], 0
movzx esi, byte [eax]
inc dword [ebp - 0x634]
push dword [ebp - 0x634]
mov ecx, dword [ebp - 0x62c]
mov eax, esi
mov dword [ebp - 0x630], esi
call fcn.300303ae
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x634]
lea eax, [eax + esi*2]
jmp 0x30041662
mov eax, dword [ebp - 0x634]
and dword [edi + 0x24], 0
movzx eax, word [eax]
push eax
mov ecx, dword [ebp - 0x62c]
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
add dword [ebp - 0x634], 2
jmp case.0x3003f06d.35
test word [ebp + 0x1c], 0x1000
jne case.0x3003f06d.35
mov eax, dword [ebp - 0x634]
mov dword [edi + 0x28], 1
movzx eax, byte [eax]
push eax
lea ecx, [edi + 4]
call fcn.300285e8
inc dword [ebp - 0x634]
jmp case.0x3003f06d.35
mov eax, dword [ebp - 0x634]
movzx esi, byte [eax]
push dword [ebp - 0x644]
mov eax, dword [ebp - 0x64c]
push dword [eax + 0xc]
movzx eax, word [eax + 0x10]
xor ecx, ecx
inc ecx
inc dword [ebp - 0x634]
push ecx
mov dword [ebp - 0x708], ecx
mov dword [ebp - 0x690], esi
call fcn.30042767
mov dword [ebp - 0x640], eax
jmp case.0x3003f06d.35
xor eax, eax
inc eax
or dword [edi + 0x74], eax
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x634]
movzx ecx, byte [eax]
inc eax
movsx ebx, byte [eax]
inc eax
movsx esi, byte [eax]
inc eax
test byte [ebp + 0x1c], 0x40
mov dword [ebp - 0x658], ecx
mov dword [ebp - 0x630], ebx
mov dword [ebp - 0x634], eax
je 0x3003f2cc
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x3003f29a
mov esi, eax
mov dword [ebp - 0x630], eax
mov ebx, eax
push 0xf
pop eax
cmp esi, eax
ja 0x3003f2a3
mov eax, esi
push eax
lea eax, [ebp - 0x40c]
push eax
lea edx, [ebp - 0x684]
lea ecx, [ebp - 0x6a4]
call fcn.301ff79a
movsx edx, word [ebp - 0x684]
movsx eax, word [ebp - 0x682]
jmp 0x3003f2d6
xor eax, eax
mov dword [ebp - 0x650], eax
mov edx, eax
sub esi, ebx
add edx, esi
lea ecx, [ebx + edx]
cmp ecx, eax
mov dword [ebp - 0x638], eax
mov dword [ebp - 0x650], edx
jge 0x3003f31b
push pe_nt_image_headers32
lea ebx, [ebp - 0x638]
lea edi, [ebp - 0x650]
lea esi, [ebp - 0x40c]
call fcn.30027024
mov eax, dword [ebp - 0x638]
mov ebx, dword [ebp - 0x630]
mov edx, dword [ebp - 0x650]
xor ecx, ecx
cmp eax, ecx
jne 0x3003f34e
cmp dword [ebp - 0x68c], 1
jne 0x3003f346
mov edx, dword [ebp - 0x64c]
test byte [edx + 0x28], 1
jne 0x3003ee70
cmp dword [ebp - 0x6b0], ecx
jne 0x3003ee70
mov dword [ebp - 0x650], ecx
jmp 0x3003f356
add edx, ebx
cmp edx, eax
jge 0x3003f356
mov eax, edx
lea edx, [ebp - 0x40c]
lea eax, [ebp + eax*2 - 0x40c]
mov dword [ebp - 0x674], edx
mov dword [ebp - 0x6b8], eax
mov dword [ebp - 0x6f0], ecx
mov dword [ebp - 0x66c], ecx
mov dword [ebp - 0x668], ecx
jmp case.0x3003f06d.35
mov eax, dword [ebp - 0x634]
movzx eax, byte [eax]
inc dword [ebp - 0x634]
lea ecx, [ebp - 0x20c]
sub ecx, dword [ebp - 0x674]
mov dword [ebp - 0x638], eax
sar ecx, 1
cmp ecx, eax
mov dword [ebp - 0x658], eax
jl 0x30042391
mov esi, eax
add esi, esi
push esi
push dword [ebp - 0x674]
push dword [ebp - 0x634]
call fcn.3002660a
add dword [ebp - 0x634], esi
mov eax, dword [ebp - 0x6e8]
neg eax
sbb eax, eax
and eax, 0x1d
add eax, 9
mov dword [ebp - 0x63c], eax
mov ebx, eax
jmp 0x3003f431
test byte [ebp + 0x1c], 2
mov dword [ebp - 0x6e8], 1
je case.0x3003f06d.9
cmp dword [edi + 0x48], 0
jne case.0x3003f06d.9
mov edx, dword [ebp - 0x648]
push 8
pop ecx
xor eax, eax
lea edi, [edx + 0x4c]
mov dword [edx + 0x48], 1
rep stosd dword es:[edi], eax
mov edi, edx
mov eax, dword [ebp - 0x634]
movzx eax, byte [eax]
inc dword [ebp - 0x634]
mov dword [ebp - 0x638], eax
cmp dword [ebp - 0x668], 3
jne 0x3003f455
cmp ebx, 0xb
mov dword [ebp - 0x668], 2
jne 0x3003f513
dec dword [ebp - 0x6a8]
jmp 0x3003f462
cmp dword [ebp - 0x668], 4
jne 0x3003f4f2
cmp dword [ebp - 0x6e8], 0
jne 0x3003f47e
mov esi, dword [ebp - 0x6a8]
mov ecx, dword [ebp - 0x62c]
call fcn.30030521
jmp 0x3003f4d4
test byte [ebp + 0x1c], 2
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx eax, word [eax]
je 0x3003f4ad
mov ecx, dword [ebp - 0x6a8]
sub eax, ecx
push edi
call fcn.30043ad4
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
jmp 0x3003f4e8
sub eax, dword [ebp - 0x6a8]
jne 0x3003f4c1
mov dword [ebp - 0x628], 1
jmp 0x3003f4e8
mov edi, dword [ebp - 0x6a8]
mov ecx, dword [ebp - 0x62c]
push 0x20
call fcn.300305a5
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov ebx, dword [ebp - 0x63c]
mov dword [ebp - 0x668], 2
cmp dword [ebp - 0x668], 2
jne 0x3003f513
cmp ebx, 0xb
jne 0x3003f513
cmp dword [ebp - 0x6d4], 0
jne 0x3003f513
mov dword [ebp - 0x6d4], 1
xor edx, edx
cmp dword [ebp - 0x6f0], edx
jne 0x3003f9f9
cmp dword [ebp - 0x668], 1
jne 0x3003f533
cmp ebx, 0x26
je 0x3003f9f9
mov eax, dword [ebp - 0x650]
cmp dword [ebp - 0x658], eax
jle 0x3003f7f5
mov ecx, dword [ebp - 0x658]
sub ecx, eax
cmp dword [ebp - 0x638], ecx
jge 0x3003f563
mov eax, dword [ebp - 0x638]
mov dword [ebp - 0x630], eax
jmp 0x3003f569
mov dword [ebp - 0x630], ecx
mov esi, dword [ebp - 0x630]
sub dword [ebp - 0x638], esi
cmp ebx, 9
jne 0x3003f5e3
sub dword [ebp - 0x658], esi
jne 0x3003f809
cmp dword [ebp - 0x668], 5
jne 0x3003f809
cmp dword [ebp - 0x6d4], edx
jne 0x3003f5d4
cmp dword [ebp - 0x6e4], edx
mov ecx, dword [ebp - 0x62c]
je 0x3003f5b0
push 0xe50
jmp 0x3003f5b2
push 0x30
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov dword [ebp - 0x668], 3
jmp 0x3003f809
mov dword [ebp - 0x668], 4
jmp 0x3003f809
cmp dword [ebp - 0x66c], edx
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx eax, word [eax]
mov dword [ebp - 0x688], eax
mov eax, esi
je 0x3003f612
mov ecx, dword [ebp - 0x658]
mov eax, dword [ebp - 0x6ec]
push esi
call fcn.3003431d
add eax, esi
lea ecx, [ebp - 0x700]
push ecx
mov ecx, dword [ebp - 0x62c]
push eax
lea edi, [ebp - 0x71c]
call fcn.3003eada
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
cmp dword [ebp - 0x640], 0
mov esi, dword [ebp - 0x700]
je 0x3003f65c
mov edi, dword [ebp - 0x640]
mov bx, 0x30
call fcn.30042821
movzx eax, ax
jmp 0x3003f66e
mov eax, dword [ebp - 0x6e4]
neg eax
sbb eax, eax
and eax, 0xe20
add eax, 0x30
cmp dword [ebp - 0x630], 0
mov dword [ebp - 0x654], eax
jle 0x3003f7d1
mov edi, dword [ebp - 0x718]
push 2
pop ebx
jmp 0x3003f692
mov eax, dword [ebp - 0x654]
dec dword [ebp - 0x630]
dec dword [ebp - 0x658]
mov word [esi], ax
add esi, ebx
cmp dword [ebp - 0x658], 0
jne 0x3003f6d3
cmp dword [ebp - 0x668], 5
jne 0x3003f6d3
cmp dword [ebp - 0x6d4], 0
je 0x3003f71b
cmp dword [ebp - 0x63c], 0x26
jne 0x3003f71b
mov dword [ebp - 0x668], 4
jmp 0x3003f6dc
cmp dword [ebp - 0x63c], 0x26
jne 0x3003f71b
test byte [ebp + 0x1c], 2
jne 0x3003f6ea
mov word [esi - 2], 0x20
jmp 0x3003f71b
push dword [ebp - 0x648]
mov ecx, dword [ebp - 0x688]
xor eax, eax
inc eax
call fcn.30043ad4
test eax, eax
jge 0x3003f71b
push 0
mov eax, 0x30022492
push eax
push 0x39336973
push eax
call dword [sym.imp.MSO.dll_Ordinal_3295]
test eax, eax
jne 0x3003f71b
int3
inc dword [ebp - 0x688]
cmp dword [ebp - 0x66c], 0
je 0x3003f7c4
mov eax, dword [ebp - 0x658]
test eax, eax
je 0x3003f7c4
mov ecx, dword [ebp - 0x6ec]
cmp byte [ecx + 0x2c], 0
je 0x3003f756
xor edx, edx
div dword [ecx + 0x30]
mov eax, edx
neg eax
sbb eax, eax
inc eax
jmp 0x3003f767
mov eax, dword [ebp - 0x658]
mov ecx, dword [ebp - 0x6ec]
call fcn.300342cd
test eax, eax
je 0x3003f7c4
cmp dword [ebp - 0x63c], 0x26
jne 0x3003f7b9
test byte [ebp + 0x1c], 2
je 0x3003f7b2
push dword [ebp - 0x648]
mov ecx, dword [ebp - 0x688]
xor eax, eax
mov word [esi], di
inc eax
add esi, ebx
call fcn.30043ad4
test eax, eax
jge 0x3003f7be
push 0
mov eax, 0x30022492
push eax
push 0x39336975
push eax
call dword [sym.imp.MSO.dll_Ordinal_3295]
test eax, eax
jne 0x3003f7be
int3
mov word [esi], 0x20
jmp 0x3003f7bc
mov word [esi], di
add esi, ebx
inc dword [ebp - 0x688]
cmp dword [ebp - 0x630], 0
jg 0x3003f68c
mov eax, dword [ebp - 0x71c]
sub esi, dword [ebp - 0x700]
movzx ecx, word [eax]
dec dword [ebp - 0x630]
sar esi, 1
add ecx, esi
and word [eax + ecx*2 + 2], 0
add word [eax], si
jmp 0x3003f809
mov ecx, eax
sub ecx, dword [ebp - 0x658]
add dword [ebp - 0x638], ecx
mov dword [ebp - 0x658], eax
cmp dword [ebp - 0x66c], 0
mov eax, dword [ebp - 0x638]
je 0x3003f830
mov ecx, dword [ebp - 0x658]
push eax
mov eax, dword [ebp - 0x6ec]
call fcn.3003431d
add eax, dword [ebp - 0x638]
mov ecx, dword [ebp - 0x62c]
mov ecx, dword [ecx]
movzx ecx, word [ecx]
add ecx, eax
cmp ecx, 0xff
jg 0x30042391
lea ecx, [ebp - 0x700]
push ecx
mov ecx, dword [ebp - 0x62c]
push eax
lea edi, [ebp - 0x71c]
call fcn.3003eada
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
cmp dword [ebp - 0x638], 0
mov esi, dword [ebp - 0x700]
je 0x3003f94c
mov eax, dword [ebp - 0x638]
sub dword [ebp - 0x650], eax
mov ecx, dword [ebp - 0x6ec]
mov eax, dword [ebp - 0x674]
dec dword [ebp - 0x638]
cmp eax, dword [ebp - 0x6b8]
push 0x30
pop ebx
mov dword [ebp - 0x654], ebx
jae 0x3003f8c3
movzx ebx, word [eax]
inc eax
inc eax
mov dword [ebp - 0x654], ebx
mov dword [ebp - 0x674], eax
cmp dword [ebp - 0x640], 0
je 0x3003f8e2
mov edi, dword [ebp - 0x640]
call fcn.30042821
mov ecx, dword [ebp - 0x6ec]
movzx ebx, ax
jmp 0x3003f8f1
cmp dword [ebp - 0x6e4], 0
je 0x3003f8f7
add ebx, 0xe20
mov dword [ebp - 0x654], ebx
mov eax, dword [ebp - 0x658]
mov word [esi], bx
inc esi
inc esi
dec eax
cmp dword [ebp - 0x66c], 0
mov dword [ebp - 0x658], eax
je 0x3003f93f
test eax, eax
je 0x3003f93f
cmp byte [ecx + 0x2c], 0
je 0x3003f92a
xor edx, edx
div dword [ecx + 0x30]
mov eax, edx
neg eax
sbb eax, eax
inc eax
jmp 0x3003f92f
call fcn.300342cd
test eax, eax
je 0x3003f93f
mov ax, word [ebp - 0x718]
mov word [esi], ax
inc esi
inc esi
cmp dword [ebp - 0x638], 0
jne 0x3003f895
mov eax, dword [ebp - 0x71c]
sub esi, dword [ebp - 0x700]
movzx edx, word [eax]
sar esi, 1
add edx, esi
xor ecx, ecx
mov word [eax + edx*2 + 2], cx
add word [eax], si
cmp dword [ebp - 0x658], ecx
jne 0x3003fcd7
cmp dword [ebp - 0x668], 2
jle 0x3003fcd7
cmp dword [ebp - 0x63c], 0x26
je 0x3003f991
mov dword [ebp - 0x6e8], ecx
cmp dword [ebp - 0x668], 5
jne 0x3003f9a4
mov dword [ebp - 0x668], 2
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx eax, word [eax]
mov esi, dword [ebp - 0x674]
mov dword [ebp - 0x6a8], eax
lea eax, [ebp - 0x20c]
sub eax, esi
sar eax, 1
push eax
push esi
push dword [ebp - 0x704]
call fcn.3002639f
mov ecx, dword [ebp - 0x72c]
and dword [ebp - 0x66c], 0
mov dword [ebp - 0x650], eax
lea eax, [esi + eax*2]
mov dword [ebp - 0x658], ecx
mov dword [ebp - 0x6b8], eax
jmp case.0x3003f06d.35
mov eax, dword [ebp + 0x18]
cmp eax, edx
je 0x3003fa06
mov dword [ebp - 0x638], eax
mov esi, dword [ebp - 0x650]
xor edi, edi
cmp esi, edi
jge 0x3003faac
neg esi
cmp dword [ebp - 0x638], esi
jge 0x3003fa26
mov esi, dword [ebp - 0x638]
mov eax, pe_nt_image_headers32
cmp esi, eax
jb 0x3003fa31
mov esi, eax
cmp dword [ebp - 0x640], edi
je 0x3003fa4d
mov edi, dword [ebp - 0x640]
mov bx, 0x30
call fcn.30042821
movzx eax, ax
jmp 0x3003fa5f
mov eax, dword [ebp - 0x6e4]
neg eax
sbb eax, eax
and eax, 0xe20
add eax, 0x30
push esi
push eax
mov dword [ebp - 0x654], eax
lea eax, [ebp - 0x20c]
push eax
call fcn.30026b12
mov ecx, dword [ebp - 0x62c]
add esp, 0xc
lea eax, [ebp - 0x20c]
push eax
mov eax, esi
call fcn.300303ae
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
add dword [ebp - 0x650], esi
sub dword [ebp - 0x638], esi
mov ebx, dword [ebp - 0x63c]
xor edi, edi
mov eax, dword [ebp - 0x6b8]
sub eax, dword [ebp - 0x674]
mov ecx, dword [ebp - 0x638]
sar eax, 1
cmp ecx, eax
mov dword [ebp - 0x630], ecx
jl 0x3003fad0
mov dword [ebp - 0x630], eax
cmp dword [ebp - 0x640], edi
je 0x3003fb29
xor esi, esi
cmp dword [ebp - 0x630], edi
jle 0x3003fb99
mov eax, dword [ebp - 0x674]
mov edi, dword [ebp - 0x640]
mov bx, word [eax + esi*2]
call fcn.30042821
mov ecx, dword [ebp - 0x62c]
movzx eax, ax
push eax
mov dword [ebp - 0x654], eax
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
inc esi
cmp esi, dword [ebp - 0x630]
jl 0x3003fae6
jmp 0x3003fb93
cmp dword [ebp - 0x6e4], edi
je 0x3003fb6e
xor esi, esi
cmp dword [ebp - 0x630], edi
jle 0x3003fb99
mov eax, dword [ebp - 0x674]
movzx eax, word [eax + esi*2]
mov ecx, dword [ebp - 0x62c]
add ax, 0xe20
push eax
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
inc esi
cmp esi, dword [ebp - 0x630]
jl 0x3003fb3b
jmp 0x3003fb93
push dword [ebp - 0x674]
mov eax, dword [ebp - 0x630]
mov ecx, dword [ebp - 0x62c]
call fcn.300303ae
cmp eax, edi
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov ebx, dword [ebp - 0x63c]
cmp ebx, 9
mov ecx, dword [ebp - 0x674]
mov eax, dword [ebp - 0x630]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x674], ecx
je 0x3003fcbc
mov esi, dword [ebp - 0x638]
sub esi, eax
xor edi, edi
cmp esi, edi
mov dword [ebp - 0x630], esi
jg 0x3003fbd3
mov dword [ebp - 0x630], edi
mov esi, edi
cmp ebx, 0x26
mov dword [ebp - 0x654], 0x30
jne 0x3003fc1a
test byte [ebp + 0x1c], 2
je 0x3003fc10
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx ecx, word [eax]
push dword [ebp - 0x648]
mov eax, esi
call fcn.30043ad4
cmp eax, edi
mov dword [ebp - 0x628], eax
jl 0x3004239b
jmp 0x3003fc1a
mov dword [ebp - 0x654], 0x20
cmp dword [ebp - 0x640], edi
je 0x3003fc56
cmp word [ebp - 0x654], 0x30
jne 0x3003fc56
mov edi, dword [ebp - 0x640]
mov bx, 0x30
call fcn.30042821
test esi, esi
mov ecx, dword [ebp - 0x62c]
mov edx, dword [ecx]
movzx eax, ax
mov dword [ebp - 0x654], eax
movzx edi, word [edx]
je 0x3003fc8d
push eax
jmp 0x3003fca7
cmp dword [ebp - 0x6e4], edi
je 0x3003fc7e
cmp word [ebp - 0x654], 0x30
jne 0x3003fc7e
cmp esi, edi
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx ecx, word [eax]
je 0x3003fc8d
push 0xe50
jmp 0x3003fc9f
cmp esi, edi
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx ecx, word [eax]
jne 0x3003fc99
mov dword [ebp - 0x628], 1
jmp 0x3003fcbc
push dword [ebp - 0x654]
mov edi, ecx
mov ecx, dword [ebp - 0x62c]
mov eax, esi
call fcn.300305a5
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
cmp dword [ebp - 0x668], 0
je 0x3003fcd7
mov eax, dword [ebp - 0x638]
sub dword [ebp - 0x658], eax
sub dword [ebp - 0x650], eax
cmp dword [ebp - 0x668], 1
jne case.0x3003f06d.35
cmp dword [ebp - 0x6d4], 0
jne case.0x3003f06d.35
cmp dword [ebp - 0x6e8], 0
jne 0x3003fd10
mov esi, dword [ebp - 0x6a8]
mov ecx, dword [ebp - 0x62c]
call fcn.30030521
jmp 0x30041b5b
test byte [ebp + 0x1c], 2
je 0x3003fd39
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx eax, word [eax]
mov ecx, dword [ebp - 0x6a8]
push dword [ebp - 0x648]
sub eax, ecx
call fcn.30043ad4
jmp 0x30041b5b
mov ecx, dword [ebp - 0x62c]
mov eax, dword [ecx]
movzx eax, word [eax]
mov edi, dword [ebp - 0x6a8]
sub eax, edi
jne 0x3003fd5d
mov dword [ebp - 0x628], 1
jmp case.0x3003f06d.35
push 0x20
call fcn.300305a5
jmp 0x30041b5b
push 0x1c
mov ecx, esi
call fcn.3013dcf3
test eax, eax
je case.0x3003f06d.35
mov dword [ebp - 0x6e4], 1
jmp case.0x3003f06d.35
add dword [ebp - 0x634], 9
jmp case.0x3003f06d.35
and dword [edi + 0x24], 0
test byte [ebp + 0x1c], 2
je 0x3003fdf1
cmp dword [edi + 0x48], 0
jne 0x3003fdbe
mov edx, dword [ebp - 0x648]
push 8
pop ecx
xor eax, eax
lea edi, [edx + 0x4c]
mov dword [edx + 0x48], 1
rep stosd dword es:[edi], eax
mov edi, edx
mov esi, dword [ebp - 0x62c]
mov eax, dword [esi]
movzx ecx, word [eax]
xor eax, eax
push edi
inc eax
call fcn.30043ad4
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x634]
movzx eax, word [eax]
push eax
mov ecx, esi
jmp 0x3003f1c5
push 0x20
jmp 0x3003f1bf
mov ecx, dword [ebp - 0x62c]
or dword [edi + 0x74], 1
push 0x2f
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov esi, dword [ebp - 0x674]
lea eax, [ebp - 0x20c]
sub eax, esi
sar eax, 1
push eax
push esi
push dword [ebp - 0x714]
call fcn.3002639f
mov ecx, dword [ebp - 0x730]
mov dword [ebp - 0x650], eax
lea eax, [esi + eax*2]
mov dword [ebp - 0x658], ecx
mov dword [ebp - 0x6b8], eax
mov dword [ebp - 0x668], 1
jmp case.0x3003f06d.35
or dword [edi + 0x74], 1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x54]
jmp 0x30041b4f
or dword [edi + 0x74], 1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x5c]
jmp 0x30041b4f
test byte [ebp + 0x1c], 8
jne 0x3003f1d8
mov eax, dword [ebp - 0x634]
and dword [edi + 0x24], 0
movzx eax, word [eax]
add dword [ebp - 0x634], 2
cmp dword [ebp + 0x14], 0x7fff
mov dword [ebp - 0x70c], eax
je 0x3003fed2
test byte [ebp + 0x1c], 0x20
mov ecx, dword [ebp - 0x670]
je 0x3003febe
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x3003fec4
mov edx, dword [ecx]
push eax
call dword [edx + 8]
test eax, eax
mov dword [ebp - 0x6f4], eax
je case.0x3003f06d.35
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx eax, word [eax]
cmp eax, dword [ebp - 0x6e0]
mov dword [ebp - 0x6b4], eax
jne case.0x3003f06d.35
mov dword [ebp - 0x6fc], 1
jmp case.0x3003f06d.35
or dword [edi + 0x74], 1
lea ecx, [ebp - 0x624]
call fcn.30030124
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x78]
push eax
lea ecx, [ebp - 0x624]
call fcn.30030184
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov ecx, dword [ebp - 0x644]
push 3
call fcn.3013dcf3
test eax, eax
jne 0x3003ff66
mov eax, dword [ebp - 0x624]
push 4
pop esi
cmp word [eax], si
jbe 0x3003ff66
lea ecx, [ebp - 0x624]
call fcn.30030521
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
push dword [ebp - 0x62c]
lea ecx, [ebp - 0x624]
call fcn.30030350
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov esi, dword [ebp - 0x62c]
mov eax, dword [esi]
movzx edi, word [eax]
mov ecx, dword [ebp - 0x644]
dec edi
call fcn.3013dd8f
test eax, eax
je case.0x3003f06d.35
test word [ebp + 0x1c], 0x2000
jne case.0x3003f06d.35
mov eax, dword [ebp - 0x624]
cmp word [eax], 1
jne case.0x3003f06d.35
mov edx, edi
mov ecx, esi
call fcn.30030338
cmp ax, 0x5c
jne case.0x3003f06d.35
mov ecx, dword [ebp - 0x670]
mov eax, dword [ecx]
call dword [eax + 0x48]
test eax, eax
je case.0x3003f06d.35
xor eax, eax
push 0xa5
inc eax
mov ecx, esi
jmp 0x3003fd5f
mov eax, dword [ebp - 0x634]
movzx esi, word [eax]
add dword [ebp - 0x634], 2
push dword [ebp - 0x634]
mov ecx, dword [ebp - 0x62c]
mov eax, esi
call fcn.300303ae
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x634]
lea eax, [eax + esi*2 + 4]
mov dword [ebp - 0x634], eax
mov eax, dword [ebp - 0x64c]
mov edx, dword [eax + 0xc]
mov ecx, 0xf800
cmp edx, ecx
je 0x30041d63
cmp edx, 0xf400
je 0x30041d63
push dword [ebp - 0x644]
movzx eax, word [eax + 0x10]
mov esi, dword [ebp - 0x690]
push edx
push dword [ebp - 0x708]
call fcn.30042767
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x680], 1
jmp case.0x3003f06d.35
xor eax, eax
inc eax
or dword [edi + 0x74], eax
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x634]
movzx ebx, byte [eax]
inc eax
movzx ecx, byte [eax]
inc eax
movzx edx, byte [eax]
inc eax
movsx esi, word [eax]
inc eax
inc eax
test edx, edx
mov dword [ebp - 0x634], eax
mov eax, dword [ebp - 0x6a4]
mov dword [ebp - 0x73c], eax
mov eax, dword [ebp - 0x6a0]
mov dword [ebp - 0x658], ebx
mov dword [ebp - 0x72c], ecx
mov dword [ebp - 0x730], esi
mov dword [ebp - 0x738], eax
je 0x300400f9
lea ecx, [ebp - 0x6a4]
call fcn.301ff7c6
lea edx, [ebp - 0x73c]
lea ecx, [ebp - 0x6a4]
call fcn.301fef9c
push 0
lea eax, [ebp - 0x40c]
push eax
lea edx, [ebp - 0x684]
lea ecx, [ebp - 0x6a4]
call fcn.301ff79a
test ebx, ebx
movsx eax, word [ebp - 0x684]
movsx edi, word [ebp - 0x682]
mov dword [ebp - 0x650], eax
mov dword [ebp - 0x638], edi
je 0x30040176
mov eax, dword [ebp - 0x6a4]
mov dword [ebp - 0x76c], eax
mov eax, dword [ebp - 0x6a0]
lea ecx, [ebp - 0x6a4]
mov dword [ebp - 0x768], eax
call fcn.30026ca7
lea edx, [ebp - 0x76c]
lea ecx, [ebp - 0x6a4]
call fcn.301fef72
cmp word [ebp - 0x69e], 0
je 0x30040176
xor byte [ebp - 0x69d], 0x80
push ebx
lea eax, [ebp - 0x704]
push eax
mov eax, esi
lea ebx, [ebp - 0x714]
lea esi, [ebp - 0x6a4]
call fcn.30042998
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x73c]
mov dword [ebp - 0x6a4], eax
mov eax, dword [ebp - 0x738]
mov dword [ebp - 0x6a0], eax
xor eax, eax
inc eax
xor ecx, ecx
cmp dword [ebp - 0x658], ecx
mov dword [ebp - 0x6d4], eax
je 0x30040281
mov eax, dword [ebp - 0x704]
cmp eax, dword [ebp - 0x714]
je 0x300401e0
cmp eax, ecx
jne 0x3004022d
cmp dword [ebp - 0x650], edi
jge 0x30040221
mov eax, pe_nt_image_headers32
cmp dword [ebp - 0x650], eax
jb 0x300401fb
mov dword [ebp - 0x650], eax
mov ecx, dword [ebp - 0x650]
push eax
lea ebx, [ebp - 0x638]
lea edi, [ebp - 0x650]
lea esi, [ebp - 0x40c]
call fcn.30027024
mov edi, dword [ebp - 0x638]
xor ecx, ecx
mov dword [ebp - 0x704], ecx
mov dword [ebp - 0x6d4], ecx
cmp dword [ebp - 0x650], edi
jge 0x3004023b
mov edi, dword [ebp - 0x650]
cmp dword [ebp - 0x658], ecx
lea eax, [ebp - 0x40c]
mov dword [ebp - 0x674], eax
mov dword [ebp - 0x6f0], ecx
mov dword [ebp - 0x66c], ecx
mov dword [ebp - 0x6e8], ecx
mov dword [ebp - 0x668], 5
je 0x3003f99a
lea eax, [ebp + edi*2 - 0x40c]
mov dword [ebp - 0x6b8], eax
jmp case.0x3003f06d.35
cmp dword [ebp - 0x704], ecx
jne 0x3004022d
cmp dword [ebp - 0x68c], eax
jne 0x300402af
mov ecx, dword [ebp - 0x64c]
test byte [ecx + 0x28], al
jne 0x3003ee70
cmp dword [ebp - 0x6b0], 0
jne 0x3003ee70
xor ecx, ecx
mov dword [ebp - 0x650], ecx
jmp 0x3004023b
xor eax, eax
inc eax
or dword [edi + 0x74], eax
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x634]
movzx ebx, byte [eax]
inc eax
movzx ecx, byte [eax]
inc eax
inc eax
cmp dword [ebp - 0x68c], 2
mov dword [ebp - 0x658], ebx
mov dword [ebp - 0x630], ecx
mov dword [ebp - 0x634], eax
jne 0x300402f0
xor edi, edi
mov esi, ebx
jmp 0x30040324
test byte [ebp + 0x1c], 0x40
je 0x30040320
push 0xf
lea eax, [ebp - 0x40c]
push eax
lea edx, [ebp - 0x684]
lea ecx, [ebp - 0x6a4]
call fcn.301ff79a
movsx esi, word [ebp - 0x684]
movsx edi, word [ebp - 0x682]
jmp 0x30040324
xor edi, edi
xor esi, esi
cmp ebx, 1
mov dword [ebp - 0x638], edi
mov dword [ebp - 0x650], esi
jg 0x3004033d
mov dword [ebp - 0x66c], ebx
jmp 0x30040356
mov eax, esi
cdq
idiv ebx
test edx, edx
mov dword [ebp - 0x66c], edx
je 0x30040350
test esi, esi
jg 0x30040356
add dword [ebp - 0x66c], ebx
mov eax, dword [ebp - 0x630]
mov ecx, dword [ebp - 0x66c]
add ecx, eax
cmp ecx, edi
mov dword [ebp - 0x63c], ecx
jge 0x300403fa
mov dword [ebp - 0x6d8], esi
push pe_nt_image_headers32
lea ebx, [ebp - 0x638]
lea edi, [ebp - 0x650]
lea esi, [ebp - 0x40c]
call fcn.30027024
mov edi, dword [ebp - 0x638]
cmp edi, dword [ebp - 0x63c]
jl 0x300403a8
mov edi, dword [ebp - 0x63c]
test edi, edi
jle 0x300403c0
lea eax, [ebp + edi*2 - 0x40e]
cmp word [eax], 0x30
jne 0x300403c0
dec edi
dec eax
dec eax
test edi, edi
jg 0x300403b3
cmp dword [ebp - 0x658], 1
mov esi, dword [ebp - 0x650]
jle 0x300403fa
cmp esi, dword [ebp - 0x6d8]
je 0x300403fa
mov eax, esi
cdq
idiv dword [ebp - 0x658]
test edx, edx
mov dword [ebp - 0x66c], edx
je 0x300403ee
test esi, esi
jg 0x300403fa
mov eax, dword [ebp - 0x658]
add dword [ebp - 0x66c], eax
mov eax, dword [ebp - 0x66c]
sub esi, eax
mov dword [ebp - 0x650], eax
lea eax, [ebp - 0x40c]
mov dword [ebp - 0x674], eax
mov dword [ebp - 0x6d8], esi
lea eax, [ebp + edi*2 - 0x40c]
mov dword [ebp - 0x6b8], eax
xor eax, eax
mov dword [ebp - 0x66c], eax
mov dword [ebp - 0x6f0], eax
mov dword [ebp - 0x668], eax
jmp case.0x3003f06d.35
mov eax, dword [ebp - 0x634]
movzx eax, byte [eax]
inc dword [ebp - 0x634]
cmp dword [ebp - 0x6d8], 0
mov dword [ebp - 0x658], eax
jge 0x30040481
mov ecx, dword [ebp - 0x62c]
push 0x2d
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
neg dword [ebp - 0x6d8]
jmp 0x300404a1
cmp ebx, 0x1e
jne 0x300404a1
mov ecx, dword [ebp - 0x62c]
push 0x2b
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
push pe_nt_image_headers32
lea eax, [ebp - 0x40c]
push eax
push dword [ebp - 0x6d8]
call fcn.3002639f
lea ecx, [ebp - 0x40c]
mov dword [ebp - 0x650], eax
mov dword [ebp - 0x674], ecx
lea eax, [ebp + eax*2 - 0x40c]
jmp 0x30040421
mov eax, dword [ebp - 0x634]
or dword [edi + 0x74], 1
movzx eax, byte [eax]
mov dword [ebp - 0x67c], eax
jmp case.0x3003f06d.60
mov eax, dword [ebp - 0x634]
movzx eax, byte [eax]
inc dword [ebp - 0x634]
mov dword [ebp - 0x630], eax
jmp case.0x3003f06d.32
cmp dword [ebp - 0x680], 0
jne case.0x3003f06d.48
mov eax, dword [ebp - 0x634]
movzx eax, byte [eax]
inc dword [ebp - 0x634]
mov dword [ebp - 0x630], eax
lea eax, [ebp - 0x74c]
push eax
push dword [ebp - 0x67c]
add ebx, 0xffffffa2
push ebx
lea eax, [ebp - 0x6a4]
push eax
call fcn.3002da27
test eax, eax
je case.0x3003f06d.35
lea esi, [ebp - 0x40c]
lea edi, [ebp - 0x74c]
call fcn.30042c10
mov edi, eax
cmp dword [ebp - 0x630], edi
jle 0x300405a7
sub dword [ebp - 0x630], edi
js 0x30042391
xor esi, esi
cmp dword [ebp - 0x630], esi
jle 0x300405a7
mov ecx, dword [ebp - 0x62c]
push 0xe50
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
inc esi
cmp esi, dword [ebp - 0x630]
jl 0x30040580
xor esi, esi
test edi, edi
jle case.0x3003f06d.35
movzx eax, word [ebp + esi*2 - 0x40c]
mov ecx, dword [ebp - 0x62c]
add ax, 0xe20
push eax
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
inc esi
cmp esi, edi
jl 0x300405b1
jmp case.0x3003f06d.35
mov eax, dword [ebp - 0x634]
movzx eax, byte [eax]
inc dword [ebp - 0x634]
mov dword [ebp - 0x630], eax
lea eax, [ebp - 0x74c]
push eax
push dword [ebp - 0x67c]
add ebx, 0xffffffd0
push ebx
lea eax, [ebp - 0x6a4]
push eax
call fcn.3002da27
test eax, eax
je case.0x3003f06d.35
lea esi, [ebp - 0x40c]
lea edi, [ebp - 0x74c]
call fcn.30042c10
mov edi, eax
cmp dword [ebp - 0x630], edi
jle 0x300406a8
xor esi, esi
cmp dword [ebp - 0x640], esi
mov dword [ebp - 0x654], 0x30
je 0x3004066c
push dword [ebp - 0x644]
lea eax, [ebp - 0x654]
push dword [ebp - 0x640]
push 1
push 1
push eax
push dword [ebp - 0x64c]
call fcn.30042c6d
sub dword [ebp - 0x630], edi
js 0x30042391
cmp dword [ebp - 0x630], esi
jle 0x300406a8
push dword [ebp - 0x654]
mov ecx, dword [ebp - 0x62c]
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
inc esi
cmp esi, dword [ebp - 0x630]
jl 0x30040680
cmp dword [ebp - 0x640], 0
je 0x300406d7
push dword [ebp - 0x644]
lea eax, [ebp - 0x40c]
push dword [ebp - 0x640]
push pe_nt_image_headers32
push edi
push eax
push dword [ebp - 0x64c]
call fcn.30042c6d
mov edi, eax
lea eax, [ebp - 0x40c]
push eax
mov eax, edi
jmp 0x30040d2e
test word [ebp + 0x1c], 0x100
jne 0x30040724
cmp dword [ebp - 0x680], 0
jne case.0x3003f06d.19
push 1
push 0x41e
lea ecx, [ebp - 0x75c]
call fcn.3003364b
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x75c]
add eax, 2
jmp 0x300407c8
push 0
push 1
jmp 0x300407be
test word [ebp + 0x1c], 0x100
jne 0x30040724
cmp dword [ebp - 0x680], 0
jne case.0x3003f06d.20
push 0
jmp 0x300406f8
mov eax, dword [ebp - 0x64c]
cmp dword [eax + 0xc], 0
jne 0x300407e9
mov ecx, esi
call fcn.3013dceb
test eax, eax
jne 0x300407e9
mov eax, dword [ebp - 0x664]
call fcn.30043020
test eax, eax
jne 0x300407e9
cmp dword [ebp - 0x664], 7
je 0x300407e9
mov ecx, esi
call fcn.3013dceb
test eax, eax
je 0x30040724
cmp dword [ebp - 0x6d0], 2
je 0x30040724
mov eax, dword [ebp - 0x64c]
cmp dword [eax + 0xc], 0
jne 0x300407f5
mov ecx, esi
call fcn.3013dceb
test eax, eax
jne 0x300407f5
mov eax, dword [ebp - 0x664]
call fcn.30043020
test eax, eax
jne 0x300407f5
cmp dword [ebp - 0x664], 7
je 0x300407f5
push eax
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x98]
mov dword [ebp - 0x660], eax
xor eax, eax
cmp ebx, 0x3b
setne al
dec eax
and eax, 0xffffff02
add eax, 0xff
mov dword [ebp - 0x630], eax
jmp 0x300407ff
mov dword [ebp - 0x688], 1
jmp 0x30040784
mov dword [ebp - 0x688], 1
cmp dword [ebp - 0x688], 0
jne 0x30040837
cmp ebx, 0x13
je 0x30040812
cmp ebx, 0x14
jne 0x30040837
mov eax, dword [ebp - 0x660]
movzx ecx, word [eax]
push ecx
add eax, 2
push eax
call fcn.30027b6b
test eax, eax
je 0x30040837
or dword [edi + 0x74], 2
mov dword [ebp - 0x630], 0xff
lea eax, [ebp - 0x6ca]
jmp 0x30040b19
cmp dword [ebp - 0x680], 0
jne case.0x3003f06d.15
lea eax, [ebp - 0x6be]
mov dword [ebp - 0x65c], eax
xor eax, eax
cmp ebx, 0x44
sete al
lea ecx, [ebp - 0x78c]
mov dword [ebp - 0x630], 0xff
push eax
mov eax, dword [ebp + 0x1c]
and eax, 0x100
neg eax
sbb eax, eax
and eax, 0xffffffeb
add eax, 0x41e
push eax
call fcn.300336f9
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x78c]
add eax, 2
mov dword [ebp - 0x660], eax
jmp case.0x3003f06d.32
mov eax, dword [ebp - 0x64c]
cmp dword [eax + 0xc], 0
jne 0x30040a11
mov eax, dword [ebp - 0x664]
call fcn.30043020
test eax, eax
jne 0x30040a11
cmp dword [ebp - 0x664], 7
je 0x30040a11
mov ecx, esi
call fcn.3013dceb
test eax, eax
je 0x3004097e
cmp ebx, 0xf
jne 0x30040918
lea eax, [ebp - 0x678]
push eax
call fcn.30105345
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov ecx, dword [ebp - 0x678]
mov eax, dword [ecx]
push 0
push 1
jmp 0x3004095d
cmp ebx, 0x10
jne 0x30040941
lea eax, [ebp - 0x678]
push eax
call fcn.30105345
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov ecx, dword [ebp - 0x678]
mov eax, dword [ecx]
jmp 0x30040959
cmp ebx, 0x33
jne 0x30040950
mov eax, dword [esi]
push 0
push 1
mov ecx, esi
jmp 0x3004095d
cmp ebx, 0x34
jne 0x30040969
mov eax, dword [esi]
mov ecx, esi
push 0
push 0
call dword [eax + 0x9c]
mov dword [ebp - 0x660], eax
mov dword [ebp - 0x630], 0xff
lea eax, [ebp - 0x6be]
jmp 0x30040b19
cmp ebx, 0x33
jne 0x3004098f
mov dword [ebp - 0x63c], 0xf
jmp 0x3004099e
cmp ebx, 0x34
jne 0x300409a4
mov dword [ebp - 0x63c], 0x10
mov ebx, dword [ebp - 0x63c]
cmp ebx, 0xf
lea eax, [ebp - 0x6be]
mov dword [ebp - 0x65c], eax
mov eax, dword [esi]
mov dword [ebp - 0x630], 0xff
push 0
mov ecx, esi
jne 0x300409d5
push 1
call dword [eax + 0x9c]
mov dword [ebp - 0x660], eax
jmp 0x300409e3
push 0
call dword [eax + 0x9c]
mov dword [ebp - 0x660], eax
movzx ecx, word [eax]
push ecx
add eax, 2
push eax
call fcn.30027b6b
test eax, eax
je case.0x3003f06d.32
or dword [edi + 0x74], 2
mov dword [ebp - 0x63c], 0x10
mov ebx, dword [ebp - 0x63c]
jmp case.0x3003f06d.32
mov dword [ebp - 0x688], 1
jmp case.0x3003f06d.32
cmp ebx, 0x35
je 0x30040a2f
cmp ebx, 0x36
je 0x30040a2f
cmp ebx, 0x37
jne 0x30040a39
mov dword [ebp - 0x728], 1
cmp ebx, 0x1b
je 0x30040a43
cmp ebx, 0x1c
jne case.0x3003f06d.80
cmp dword [ebp - 0x664], 3
je 0x30040a8e
cmp dword [ebp - 0x664], 4
je 0x30040a8e
mov ecx, esi
call fcn.3013dd8f
test eax, eax
jne 0x30040a85
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x12c]
test eax, eax
jne 0x30040a85
mov eax, dword [ebp - 0x64c]
mov eax, dword [eax + 0xc]
cmp eax, 0x411
je 0x30040a85
cmp eax, 0x404
jne case.0x3003f06d.80
cmp dword [ebp - 0x728], 0
je case.0x3003f06d.80
mov dword [ebp - 0x63c], 0x39
mov ebx, dword [ebp - 0x63c]
mov dword [ebp - 0x630], 4
lea eax, [ebp - 0x6cc]
jmp 0x30040b19
lea eax, [ebx - 0x45]
mov dword [ebp - 0x630], eax
jmp 0x30040837
lea eax, [ebx - 0x10]
jmp 0x30040ab3
lea eax, [ebx - 0x41]
mov dword [ebp - 0x630], eax
lea eax, [ebp - 0x6c8]
jmp 0x30040b19
lea eax, [ebx - 0xc]
jmp 0x30040ac6
lea eax, [ebx - 0x49]
mov dword [ebp - 0x630], eax
lea eax, [ebp - 0x6c4]
jmp 0x30040b19
lea eax, [ebx - 0x14]
jmp 0x30040adc
lea eax, [ebx - 0x4b]
mov dword [ebp - 0x630], eax
lea eax, [ebp - 0x6c2]
jmp 0x30040b19
lea eax, [ebx - 0x16]
jmp 0x30040af2
lea eax, [ebx - 0x4d]
jmp 0x30040b0d
lea eax, [ebx - 0x18]
mov dword [ebp - 0x630], eax
lea eax, [ebp - 0x6c0]
mov dword [ebp - 0x65c], eax
or dword [edi + 0x74], 1
cmp dword [ebp - 0x68c], 1
jne 0x30040b36
test byte [ebp + 0x1c], 0x80
je 0x30042391
cmp word [ebp - 0x6cc], 0
jne 0x30040c46
test byte [ebp + 0x1c], 0x40
jne 0x30040b58
mov edx, dword [ebp + 0x18]
lea ecx, [ebp - 0x6a4]
call fcn.301feffa
mov esi, dword [ebp + 0x1c]
lea eax, [ebp - 0x6a4]
push eax
and esi, 0x80
push esi
push dword [ebp - 0x67c]
lea ecx, [ebp - 0x6cc]
push eax
call fcn.3002d6d3
xor ecx, ecx
test eax, eax
setge cl
mov edi, ecx
test edi, edi
je 0x30042391
test word [ebp + 0x1c], 0x100
jne 0x30040c32
mov ecx, dword [ebp - 0x644]
push 0x1a
call fcn.3013dcf3
test eax, eax
je 0x30040bb2
cmp dword [ebp - 0x6d0], 2
je 0x30040bc1
mov eax, dword [ebp - 0x664]
call fcn.3002e140
test eax, eax
je 0x30040c32
movsx ecx, word [ebp - 0x6cc]
xor eax, eax
test esi, esi
setne al
xor edi, edi
inc edi
lea eax, [eax*4 + 0x76c]
cmp ecx, eax
jne 0x30040bfb
cmp word [ebp - 0x6ca], di
jge 0x30040bed
mov word [ebp - 0x6ca], di
cmp dword [ebp - 0x6c8], edi
jae 0x30040bfb
mov dword [ebp - 0x6c8], edi
cmp dword [ebp - 0x664], 0
jne 0x30040c17
cmp dword [ebp - 0x6d0], 2
jne 0x30040c1f
mov dword [ebp - 0x664], 6
cmp dword [ebp - 0x664], edi
je 0x30040c32
push dword [ebp - 0x664]
lea esi, [ebp - 0x6cc]
call fcn.3002dff7
mov edi, eax
test edi, edi
je 0x30042391
mov edi, dword [ebp - 0x648]
mov esi, dword [ebp - 0x644]
lea eax, [ebx - 0xf]
cmp eax, 0x50
ja case.0x30040c59.17
movzx eax, byte [eax + 0x3004259a]
jmp dword [eax*4 + 0x30042576]
mov ecx, esi
call fcn.3013dd76
mov ecx, dword [ebp - 0x62c]
push eax
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov ebx, dword [ebp - 0x67c]
mov eax, pe_nt_image_headers32
cmp dword [ebp - 0x630], eax
jb 0x30040c9a
mov dword [ebp - 0x630], eax
cmp dword [ebp - 0x67c], 0
movzx eax, word [ebp - 0x6bc]
mov esi, dword [ebp - 0x630]
lea esi, [ebp + esi*2 - 0x20c]
mov dword [ebp - 0x6ac], eax
je 0x30040d21
movsx eax, ax
cdq
push 0xa
pop ecx
idiv ecx
dec ebx
add edx, 0x30
cmp dword [ebp - 0x640], 0
mov edi, eax
movzx eax, dx
mov dword [ebp - 0x654], eax
je 0x30040d00
push dword [ebp - 0x644]
lea eax, [ebp - 0x654]
push dword [ebp - 0x640]
push 1
push 1
push eax
push dword [ebp - 0x64c]
call fcn.30042c6d
cmp ebx, dword [ebp - 0x630]
jge 0x30040d14
mov ax, word [ebp - 0x654]
dec esi
dec esi
mov word [esi], ax
test ebx, ebx
movzx eax, di
jne 0x30040cbd
mov dword [ebp - 0x6ac], eax
lea eax, [ebp - 0x20c]
push eax
mov eax, dword [ebp - 0x630]
mov ecx, dword [ebp - 0x62c]
call fcn.300303ae
jmp 0x30041b5b
movzx eax, word [ebp - 0x6c4]
push 0xc
pop ecx
cmp word [ebp - 0x6c4], cx
mov dword [ebp - 0x6ac], eax
jle 0x30040d69
mov eax, dword [ebp - 0x6c4]
add eax, 0xfffffff4
movzx eax, ax
mov dword [ebp - 0x6ac], eax
test ax, ax
jne 0x30040d74
mov dword [ebp - 0x6ac], ecx
lea eax, [ebp - 0x6ac]
mov dword [ebp - 0x65c], eax
lea eax, [ebx - 0x1f]
mov dword [ebp - 0x630], eax
mov esi, dword [ebp - 0x670]
test esi, esi
je 0x300417b3
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov edx, dword [eax]
mov ecx, eax
call dword [edx]
cmp eax, 4
je 0x300416b4
cmp dword [ebp - 0x680], 0
jne 0x300416b4
cmp ebx, 0x51
je 0x3004166d
cmp ebx, 0x59
je 0x3004166d
cmp ebx, 0x50
je 0x3004166d
cmp ebx, 0x58
je 0x3004166d
mov eax, dword [ebp - 0x65c]
movzx eax, word [eax]
movsx edi, ax
mov dword [ebp - 0x638], eax
mov eax, edi
jmp 0x30041697
mov eax, dword [ebp - 0x65c]
movsx esi, word [eax]
push 0x64
mov eax, esi
cdq
pop ecx
idiv ecx
push 0xa
pop ecx
push 0xa
mov eax, edx
cdq
idiv ecx
movzx ecx, ax
mov eax, esi
cdq
pop esi
idiv esi
xor esi, esi
cmp cx, si
movzx eax, dx
je 0x30040ea9
cmp dword [ebp - 0x680], esi
je 0x30040e74
cmp dword [ebp - 0x640], 0x13
ja 0x30040e74
add ecx, 0x30
mov word [ebp - 0x20c], cx
push dword [ebp - 0x644]
add eax, 0x30
push dword [ebp - 0x640]
mov word [ebp - 0x20a], ax
push pe_nt_image_headers32
push 2
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x64c]
call fcn.30042c6d
jmp 0x30040e8d
add ecx, 0xe50
mov word [ebp - 0x20c], cx
add eax, 0xe50
mov word [ebp - 0x20a], ax
lea eax, [ebp - 0x20c]
push eax
push 2
pop eax
mov ecx, dword [ebp - 0x62c]
call fcn.300303ae
cmp eax, esi
jmp 0x30041b5d
cmp dword [ebp - 0x630], 2
jne 0x30040edc
cmp dword [ebp - 0x680], esi
je 0x30040ed1
cmp dword [ebp - 0x640], 0x13
ja 0x30040ed1
mov word [ebp - 0x20c], 0x30
jmp 0x30040e43
mov word [ebp - 0x20c], 0xe50
jmp 0x30040e81
cmp dword [ebp - 0x680], esi
je 0x30040f22
cmp dword [ebp - 0x640], 0x13
ja 0x30040f22
push dword [ebp - 0x644]
add eax, 0x30
push dword [ebp - 0x640]
mov word [ebp - 0x20c], ax
push pe_nt_image_headers32
push dword [ebp - 0x630]
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x64c]
call fcn.30042c6d
jmp 0x30040f2e
add eax, 0xe50
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20c]
push eax
xor eax, eax
inc eax
jmp 0x30040e97
mov ecx, esi
call fcn.3013dceb
test eax, eax
je case.0x3003f06d.35
mov ecx, esi
call fcn.3013dd8f
test eax, eax
je 0x30040f6c
mov eax, dword [ebp - 0x64c]
cmp dword [eax + 0xc], 0
jne 0x30040f6c
cmp dword [ebp - 0x664], 0
je 0x30040f91
mov eax, dword [ebp - 0x64c]
cmp dword [eax + 0xc], 0x411
jne 0x30040f84
cmp dword [ebp - 0x664], 0
je 0x30040f91
cmp dword [ebp - 0x664], 3
jne 0x30041058
lea eax, [ebp - 0x740]
push eax
lea esi, [ebp - 0x6cc]
call fcn.3002e1d9
cmp ebx, 0x27
mov esi, eax
jne 0x30040fc3
cmp dword [ebp - 0x740], 0
jne 0x30041028
mov dword [ebp - 0x63c], 0x28
mov ebx, dword [ebp - 0x63c]
cmp ebx, 0x35
jne 0x30040fd7
imul esi, esi, 0xc
movzx eax, word [esi + 0x30021b0a]
jmp 0x30041b4f
cmp ebx, 0x36
jne 0x30040fee
imul esi, esi, 0xc
add esi, 0x30021b0c
xor eax, eax
push esi
inc eax
jmp 0x30040d2e
cmp ebx, 0x28
je 0x30040ff8
cmp ebx, 0x37
jne 0x30041028
mov ecx, dword [ebp - 0x62c]
mov eax, esi
imul eax, eax, 0xc
add eax, 0x30021b0c
push eax
push 2
pop eax
call fcn.300303ae
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
cmp ebx, 0x28
jne case.0x3003f06d.35
mov ax, word [ebp - 0x6cc]
imul esi, esi, 0xc
sub ax, word [esi + 0x30021b04]
inc ax
movzx eax, ax
mov dword [ebp - 0x6ac], eax
xor eax, eax
cmp ebx, 0x38
setne al
inc eax
mov dword [ebp - 0x630], eax
jmp 0x3004118b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x12c]
test eax, eax
je 0x3004107b
mov eax, dword [ebp - 0x64c]
cmp dword [eax + 0xc], 0
jne 0x3004107b
cmp dword [ebp - 0x664], 0
je 0x300410a0
mov eax, dword [ebp - 0x64c]
cmp dword [eax + 0xc], 0x404
jne 0x30041093
cmp dword [ebp - 0x664], 0
je 0x300410a0
cmp dword [ebp - 0x664], 4
jne 0x300411d9
push esi
call fcn.301057bb
test eax, eax
jne 0x300411d9
test word [ebp + 0x1c], 0x400
je 0x300410e2
cmp ebx, 0x38
je 0x300410c0
cmp ebx, 0x39
jne 0x300410db
mov ecx, dword [ebp - 0x62c]
push 0x52
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
and dword [ebp + 0x1c], 0xfffffbff
cmp ebx, 0x35
je 0x3004119c
cmp ebx, 0x36
je 0x3004119c
cmp ebx, 0x37
jne 0x30041117
cmp word [ebp - 0x6cc], 0x778
mov ecx, 0x3001d60c
jge 0x300411b1
mov ecx, 0x3001d5fc
jmp 0x300411b1
lea eax, [ebp - 0x6cc]
mov dword [ebp - 0x65c], eax
mov eax, dword [ebp - 0x6cc]
add eax, 0xfffff889
cmp dword [ebp - 0x710], 0
movzx eax, ax
mov dword [ebp - 0x630], 4
mov dword [ebp - 0x6ac], eax
je 0x30041178
cmp ax, 1
jne 0x30041165
mov ecx, 0x3001d5e0
push dword [ebp - 0x62c]
call fcn.30030390
jmp 0x30041b5b
test ax, ax
jg 0x30041181
xor ecx, ecx
inc ecx
sub ecx, eax
movzx eax, cx
mov dword [ebp - 0x6ac], eax
test ax, ax
jle case.0x30040c59.17
mov dword [ebp - 0x630], 1
lea eax, [ebp - 0x6ac]
mov dword [ebp - 0x65c], eax
jmp case.0x30040c59.17
cmp word [ebp - 0x6cc], 0x778
mov ecx, 0x3001d5f4
jge 0x300411b1
mov ecx, 0x3001d5e8
push dword [ebp - 0x62c]
call fcn.30030390
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov dword [ebp - 0x710], 1
jmp case.0x3003f06d.35
cmp ebx, 0x35
je 0x30041bc0
cmp ebx, 0x36
je 0x30041bc0
cmp ebx, 0x37
jne case.0x30040c59.17
jmp 0x30041bc0
cmp dword [ebp - 0x680], 0
jne case.0x30040c59.15
mov eax, dword [ebp - 0x65c]
movsx eax, word [eax]
dec eax
push eax
push dword [ebp - 0x660]
call fcn.300264b0
mov ecx, eax
jmp 0x30041155
push 0x1a
mov ecx, esi
call fcn.3013dcf3
test eax, eax
je 0x300414e0
test word [ebp + 0x1c], 0x100
jne 0x300414e0
cmp dword [ebp - 0x6d0], 0
je 0x300414e0
cmp dword [ebp - 0x6d0], 2
je 0x30041394
cmp dword [ebp - 0x664], 6
je 0x30041394
mov eax, dword [esi]
push 0
push 0
mov ecx, esi
call dword [eax + 0x98]
cmp dword [ebp - 0x660], eax
je 0x3004130e
mov eax, dword [esi]
push 0
push 1
mov ecx, esi
call dword [eax + 0x98]
cmp dword [ebp - 0x660], eax
je 0x3004130e
mov eax, dword [esi]
push 0
push 0
mov ecx, esi
call dword [eax + 0x9c]
cmp dword [ebp - 0x660], eax
je 0x300412c3
mov eax, dword [esi]
push 0
push 1
mov ecx, esi
call dword [eax + 0x9c]
cmp dword [ebp - 0x660], eax
jne 0x300414e0
movsx ebx, word [ebp - 0x6be]
cmp ebx, 1
jge 0x300412d2
xor ebx, ebx
inc ebx
lea eax, [ebp - 0x678]
push eax
call fcn.30105345
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x678]
mov esi, dword [eax]
mov ecx, dword [ebp - 0x644]
mov eax, dword [ecx]
push 0
push 1
add esi, 0x94
call dword [eax + 0x9c]
jmp 0x30041357
movsx ebx, word [ebp - 0x6ca]
cmp ebx, 1
jge 0x3004131d
xor ebx, ebx
inc ebx
lea eax, [ebp - 0x678]
push eax
call fcn.30105345
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x678]
mov esi, dword [eax]
mov ecx, dword [ebp - 0x644]
mov eax, dword [ecx]
push 0
push 1
add esi, 0x90
call dword [eax + 0x98]
xor ecx, ecx
cmp dword [ebp - 0x660], eax
sete cl
dec ebx
push ecx
mov ecx, dword [ebp - 0x678]
push ebx
call dword [esi]
push dword [ebp - 0x62c]
mov ecx, eax
call fcn.30030390
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov dword [edi + 0x74], 1
jmp case.0x3003f06d.35
mov eax, dword [esi]
push 0
push 0
mov ecx, esi
call dword [eax + 0x98]
cmp dword [ebp - 0x660], eax
jne 0x30041410
lea ecx, [ebp - 0x624]
call fcn.30030124
movsx ecx, word [ebp - 0x6ca]
push ebx
push dword [ebp - 0x664]
dec ecx
push 0x401
push dword [ebp - 0x64c]
lea edx, [ebp - 0x624]
call fcn.30043165
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
push dword [ebp - 0x62c]
lea ecx, [ebp - 0x624]
call fcn.30030350
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
or dword [edi + 0x74], 2
jmp case.0x3003f06d.35
mov eax, dword [esi]
push 0
push 1
mov ecx, esi
call dword [eax + 0x98]
cmp dword [ebp - 0x660], eax
jne 0x30041496
lea ecx, [ebp - 0x624]
call fcn.30030124
movsx ecx, word [ebp - 0x6ca]
push ebx
push dword [ebp - 0x664]
dec ecx
push 0x401
push dword [ebp - 0x64c]
lea edx, [ebp - 0x624]
call fcn.30043165
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x624]
mov ecx, dword [ebp - 0x644]
movzx esi, word [eax]
call fcn.3013dd4c
push eax
call dword [sym.imp.MSO.dll_Ordinal_3020]
cmp al, 8
jne 0x30041486
push 3
pop esi
lea ecx, [ebp - 0x624]
call fcn.30030521
jmp 0x300413da
mov eax, dword [esi]
push 0
push 0
mov ecx, esi
call dword [eax + 0x9c]
cmp dword [ebp - 0x660], eax
je 0x300414c2
mov eax, dword [esi]
push 0
push 1
mov ecx, esi
call dword [eax + 0x9c]
cmp dword [ebp - 0x660], eax
jne 0x300414e0
lea ecx, [ebp - 0x624]
call fcn.30030124
lea eax, [ebp - 0x6cc]
push eax
mov esi, ecx
call fcn.3002dec1
jmp 0x300413da
cmp dword [ebp - 0x688], 0
je 0x30041516
cmp ebx, 0x3b
jg 0x3004153e
je 0x30041552
cmp ebx, 0xf
jl 0x30041516
cmp ebx, 0x10
jle 0x30041596
cmp ebx, 0x12
jle 0x30041516
cmp ebx, 0x14
jle 0x30041552
cmp ebx, 0x32
jle 0x30041516
cmp ebx, 0x34
jle 0x30041596
mov eax, dword [ebp - 0x65c]
movsx eax, word [eax]
dec eax
push eax
push dword [ebp - 0x660]
call fcn.300264b0
cmp ebx, 0x3b
jne 0x30041218
movzx eax, word [eax + 2]
jmp 0x30041b4f
cmp ebx, 0x44
jl 0x30041516
cmp ebx, 0x45
jle 0x30041596
cmp ebx, 0x47
jle 0x30041516
cmp ebx, 0x49
jg 0x30041516
movsx eax, word [ebp - 0x6ca]
push dword [ebp - 0x648]
mov ebx, dword [ebp - 0x64c]
push dword [ebp + 0x1c]
dec eax
push eax
push dword [ebp - 0x63c]
lea edi, [ebp - 0x624]
push dword [ebp - 0x664]
call fcn.300430bd
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov ecx, edi
jmp 0x3003f159
movsx eax, word [ebp - 0x6be]
jmp 0x30041559
lea ecx, [ebp - 0x624]
call fcn.30030124
mov eax, dword [ebp - 0x634]
movzx esi, byte [eax]
inc eax
movzx edi, byte [eax]
inc eax
mov dword [ebp - 0x634], eax
mov eax, dword [ebp - 0x64c]
mov eax, dword [eax + 0xc]
test eax, eax
mov dword [ebp - 0x630], esi
je 0x3004161e
cmp ebx, 0x5f
je 0x3004161e
xor ecx, ecx
cmp word [ebp - 0x6c4], 0xc
push 0x22
push dword [ebp - 0x664]
setge cl
push eax
push dword [ebp - 0x64c]
lea edx, [ebp - 0x624]
call fcn.30043165
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
push dword [ebp - 0x62c]
lea ecx, [ebp - 0x624]
call fcn.30030350
jmp 0x30041649
cmp word [ebp - 0x6c4], 0xc
mov ecx, dword [ebp - 0x62c]
jge 0x30041638
push dword [ebp - 0x634]
mov eax, esi
jmp 0x30041644
mov eax, dword [ebp - 0x634]
lea eax, [eax + esi*2]
push eax
mov eax, edi
call fcn.300303ae
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x634]
add edi, esi
lea eax, [eax + edi*2]
mov dword [ebp - 0x634], eax
jmp case.0x3003f06d.35
mov eax, dword [ebp - 0x65c]
movzx eax, word [eax]
mov dword [ebp - 0x638], eax
movsx edi, ax
mov eax, dword [ebp + 0x1c]
and eax, 0x100
neg eax
sbb eax, eax
and eax, 0xfffffde1
add eax, 0x21f
add eax, edi
push pe_nt_image_headers32
lea ecx, [ebp - 0x20c]
push ecx
push eax
call fcn.3002639f
mov dword [ebp - 0x63c], eax
jmp 0x300417e6
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov edx, dword [eax]
mov ecx, eax
call dword [edx]
cmp eax, 4
je 0x3004174c
cmp dword [ebp - 0x664], 7
jne 0x3004174c
cmp ebx, 0x51
je 0x30041710
cmp ebx, 0x59
je 0x30041710
cmp ebx, 0x50
je 0x30041710
cmp ebx, 0x58
je 0x30041710
cmp ebx, 0x5a
je 0x30041710
cmp ebx, 0x5b
je 0x30041710
cmp ebx, 0x1c
je 0x30041710
cmp ebx, 0x1b
je 0x30041710
mov eax, dword [ebp - 0x65c]
movzx eax, word [eax]
movsx edi, ax
mov dword [ebp - 0x638], eax
mov eax, edi
jmp 0x3004173a
mov eax, dword [ebp - 0x65c]
movzx eax, word [eax]
mov dword [ebp - 0x638], eax
movsx edi, ax
mov eax, dword [ebp + 0x1c]
and eax, 0x100
neg eax
sbb eax, eax
and eax, 0xfffffde1
add eax, 0x21f
add eax, edi
push pe_nt_image_headers32
lea ecx, [ebp - 0x20c]
push ecx
push eax
jmp 0x300417d2
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov edx, dword [eax]
mov ecx, eax
call dword [edx]
cmp eax, 4
je 0x300417b3
mov eax, dword [ebp - 0x664]
cmp eax, 7
je 0x3004176d
cmp eax, 5
jne 0x300417b3
cmp ebx, 0x1c
je 0x30041777
cmp ebx, 0x1b
jne 0x300416fa
test word [ebp + 0x1c], 0x100
je 0x30041783
xor eax, eax
jmp 0x3004179f
sub eax, 5
je 0x30041797
dec eax
dec eax
je 0x30041790
xor eax, eax
jmp 0x3004179c
mov eax, 0x21f
jmp 0x3004179c
mov eax, 0x91d
movzx eax, ax
mov ecx, dword [ebp - 0x65c]
movzx ecx, word [ecx]
mov dword [ebp - 0x638], ecx
movsx edi, cx
jmp 0x30041738
mov eax, dword [ebp - 0x65c]
movzx eax, word [eax]
movsx edi, ax
mov dword [ebp - 0x638], eax
push pe_nt_image_headers32
lea eax, [ebp - 0x20c]
push eax
push edi
call fcn.3002639f
cmp dword [ebp - 0x680], 0
mov dword [ebp - 0x63c], eax
jne 0x30041823
cmp ebx, 0x51
mov esi, dword [ebp - 0x63c]
je 0x30041800
cmp ebx, 0x5b
je 0x30041800
cmp ebx, 0x50
je 0x30041800
cmp ebx, 0x5a
jne 0x30041829
push dword [ebp - 0x644]
lea eax, [ebp - 0x20c]
push 0xd
push pe_nt_image_headers32
push 4
push eax
push dword [ebp - 0x64c]
call fcn.30042c6d
jmp 0x30041829
mov esi, dword [ebp - 0x63c]
cmp ebx, 0x1b
je 0x3004186f
cmp ebx, 0x1c
je 0x3004186f
cmp ebx, 0x11
je 0x3004186f
cmp ebx, 0x12
je 0x3004186f
cmp ebx, 0xd
je 0x3004186f
cmp ebx, 0xe
je 0x3004186f
cmp ebx, 0x15
je 0x3004186f
cmp ebx, 0x16
je 0x3004186f
cmp ebx, 0x17
je 0x3004186f
cmp ebx, 0x18
je 0x3004186f
cmp ebx, 0x19
je 0x3004186f
cmp ebx, 0x1a
je 0x3004186f
cmp ebx, 0x20
je 0x3004186f
cmp ebx, 0x21
jne 0x30041878
cmp dword [ebp - 0x640], 0x13
jbe 0x300418a9
cmp ebx, 0x51
je 0x300418a0
cmp ebx, 0x59
je 0x300418a0
cmp ebx, 0x50
je 0x300418a0
cmp ebx, 0x58
je 0x300418a0
cmp ebx, 0x5a
je 0x300418a0
cmp ebx, 0x5b
je 0x300418a0
cmp ebx, 0x38
je 0x300418a0
cmp ebx, 0x39
jne 0x300418cd
cmp dword [ebp - 0x640], 0x13
ja 0x300418cd
push dword [ebp - 0x644]
lea eax, [ebp - 0x20c]
push dword [ebp - 0x640]
push pe_nt_image_headers32
push esi
push eax
push dword [ebp - 0x64c]
call fcn.30042c6d
cmp ebx, 0x58
je 0x300419e9
cmp ebx, 0x50
je 0x300419e9
cmp ebx, 0x5a
je 0x300419e9
cmp ebx, 0x1b
jne 0x30041931
test word [ebp + 0x1c], 0x800
jne 0x30041923
push 2
pop eax
cmp esi, eax
jl 0x30041923
mov cx, word [ebp + esi*2 - 0x210]
mov word [ebp - 0x20c], cx
mov cx, word [ebp + esi*2 - 0x20e]
mov word [ebp - 0x20a], cx
lea ecx, [ebp - 0x20c]
push ecx
jmp 0x3004199f
lea eax, [ebp - 0x20c]
push eax
mov eax, esi
jmp 0x30041a0f
cmp esi, dword [ebp - 0x630]
jge 0x30041923
cmp dword [ebp - 0x640], 0x13
mov ax, word [ebp - 0x20c]
mov word [ebp - 0x20a], ax
ja 0x3004198c
push dword [ebp - 0x644]
lea eax, [ebp - 0x654]
push dword [ebp - 0x640]
mov dword [ebp - 0x654], 0x30
push 1
push 1
push eax
push dword [ebp - 0x64c]
call fcn.30042c6d
mov ax, word [ebp - 0x654]
mov word [ebp - 0x20c], ax
jmp 0x30041995
mov word [ebp - 0x20c], 0x30
lea eax, [ebp - 0x20c]
push eax
push 2
pop eax
mov ecx, dword [ebp - 0x62c]
call fcn.300303ae
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov ecx, dword [ebp - 0x644]
call fcn.3013dceb
test eax, eax
jne 0x300419dd
cmp dword [ebp - 0x640], 0x1b
jl case.0x3003f06d.35
cmp dword [ebp - 0x640], 0x27
jg 0x30041a28
mov dword [ebp - 0x63c], 2
jmp 0x30041a28
mov ax, word [ebp - 0x208]
mov word [ebp - 0x20c], ax
mov ax, word [ebp - 0x206]
mov word [ebp - 0x20a], ax
lea eax, [ebp - 0x20c]
push eax
push 2
pop eax
mov ecx, dword [ebp - 0x62c]
call fcn.300303ae
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x640]
add eax, 0xffffffe5
cmp eax, 0xc
ja case.0x3003f06d.35
mov ecx, dword [ebp - 0x62c]
mov ebx, dword [eax*4 + 0x3001dee0]
mov eax, dword [ecx]
movzx esi, word [eax]
cmp esi, dword [ebp - 0x63c]
jle 0x30041a6f
sub esi, dword [ebp - 0x63c]
call fcn.30030521
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
jmp 0x30041a74
call fcn.30030124
cmp ebx, 2
je 0x30041b6b
cmp dword [ebp - 0x63c], 2
jle 0x30041a94
cmp word [ebp - 0x638], 0x64
jge 0x30041b6b
mov eax, edi
cdq
push 0x64
pop ecx
idiv ecx
push 0xa
pop ecx
mov eax, edx
cdq
idiv ecx
movzx esi, ax
mov eax, edi
cdq
idiv ecx
test si, si
movzx edi, dx
je 0x30041af5
cmp ebx, 1
je 0x30041abf
cmp si, 1
jle 0x30041af0
mov ecx, dword [ebp - 0x640]
movsx edx, si
call fcn.30042882
mov ecx, dword [ebp - 0x62c]
movzx eax, ax
push eax
mov dword [ebp - 0x654], eax
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
push 0xa
pop edx
jmp 0x30041b00
cmp dword [ebp - 0x63c], 2
jne 0x30041b2e
xor edx, edx
mov ecx, dword [ebp - 0x640]
call fcn.30042882
mov ecx, dword [ebp - 0x62c]
movzx eax, ax
push eax
mov dword [ebp - 0x654], eax
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
test di, di
jg 0x30041b38
test si, si
jne case.0x3003f06d.35
mov ecx, dword [ebp - 0x640]
movsx edx, di
call fcn.30042882
movzx eax, ax
mov dword [ebp - 0x654], eax
mov ecx, dword [ebp - 0x62c]
push eax
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
jmp case.0x3003f06d.35
xor esi, esi
cmp dword [ebp - 0x63c], esi
jle case.0x3003f06d.35
mov edi, dword [ebp - 0x640]
mov bx, word [ebp + esi*2 - 0x20c]
call fcn.30042821
mov ecx, dword [ebp - 0x62c]
movzx eax, ax
push eax
mov dword [ebp - 0x654], eax
call fcn.30030436
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
inc esi
cmp esi, dword [ebp - 0x63c]
jl 0x30041b75
mov edi, dword [ebp - 0x648]
mov esi, dword [ebp - 0x644]
mov eax, dword [ebp - 0x634]
cmp eax, dword [ebp - 0x6f8]
jb 0x3003f03e
cmp dword [ebp - 0x6e0], 0xffffffff
je 0x30041fba
cmp dword [ebp - 0x708], 0
je 0x30041bef
mov edi, 0xff
jmp 0x30041c2b
mov edi, dword [ebp + 0x14]
cmp edi, 0x7fff
jne 0x30041bff
push 0xb
pop edi
jmp 0x30041c2b
mov esi, dword [ebp - 0x670]
push dword [ebp - 0x62c]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc]
sub edi, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, eax
mov eax, edi
cdq
idiv ecx
push 0xb
pop edi
cmp eax, edi
jg 0x30041c2b
mov edi, eax
test byte [ebp + 0x1c], 0x40
je 0x30041c6c
mov ebx, pe_nt_image_headers32
cmp edi, ebx
jl 0x30041c3c
mov edi, ebx
push 0
push edi
push ebx
lea eax, [ebp - 0x40c]
push eax
push dword [ebp - 0x644]
lea ecx, [ebp - 0x6a4]
call fcn.30026fd4
mov edi, eax
lea eax, [ebp - 0x40c]
sub edi, eax
sar edi, 1
mov dword [ebp - 0x630], edi
jmp 0x30041ca9
mov esi, pe_nt_image_headers32
cmp edi, esi
jl 0x30041c77
mov edi, esi
mov ecx, dword [ebp - 0x644]
xor ebx, ebx
push ebx
call fcn.3013dd76
push eax
push ebx
push ebx
push edi
push esi
lea eax, [ebp - 0x40c]
call fcn.30026d2a
lea ecx, [ebp - 0x40c]
sub eax, ecx
sar eax, 1
mov dword [ebp - 0x630], eax
mov ebx, esi
mov edi, eax
cmp dword [ebp - 0x708], 0
je 0x30041cf3
push 0x45
push edi
lea eax, [ebp - 0x40c]
push eax
call dword [sym.imp.MSO.dll_Ordinal_834]
test eax, eax
je 0x30041cf3
push dword [ebp - 0x644]
mov eax, dword [ebp - 0x64c]
push dword [eax + 0xc]
movzx eax, word [eax + 0x10]
mov esi, dword [ebp - 0x690]
and dword [ebp - 0x708], 0
push 0
call fcn.30042767
mov dword [ebp - 0x640], eax
xor esi, esi
cmp dword [ebp - 0x640], esi
je 0x30041d2e
push dword [ebp - 0x644]
lea eax, [ebp - 0x40c]
push dword [ebp - 0x640]
push ebx
push edi
push eax
push dword [ebp - 0x64c]
call fcn.30042c6d
cmp eax, 0xffffffff
mov dword [ebp - 0x630], eax
je 0x30042391
mov edi, eax
cmp dword [ebp - 0x68c], 1
jne 0x30041e86
cmp edi, 1
jne 0x30041e86
cmp word [ebp - 0x40c], 0x30
jne 0x30041e86
mov dword [ebp - 0x6a4], esi
mov dword [ebp - 0x6a0], esi
jmp 0x3003ee70
cmp dword [ebp - 0x68c], 1
jne 0x30041d76
test byte [ebp + 0x1c], 0x80
je 0x30042391
xor edx, edx
cmp dword [eax + 0xc], ecx
lea ecx, [ebp - 0x624]
setne dl
mov esi, edx
call fcn.30030124
lea eax, [ebp - 0x678]
push eax
call fcn.30105345
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov ebx, dword [ebp - 0x644]
push esi
lea eax, [ebp - 0x624]
push eax
call fcn.300428d8
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov esi, dword [ebp - 0x64c]
push 0
push dword [esi + 4]
mov dword [ebp - 0x628], 0x8007000e
call fcn.3002fd1c
test eax, eax
mov dword [ebp - 0x6dc], eax
je 0x3004239b
push dword [esi + 4]
mov esi, dword [ebp - 0x670]
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov ecx, dword [ebp - 0x6dc]
push eax
push dword [ebp - 0x678]
lea eax, [ebp - 0x624]
push eax
call fcn.30038af0
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
lea ecx, [ebp - 0x624]
call fcn.30030124
mov eax, dword [esi]
push ebx
push dword [ebp - 0x760]
mov ecx, esi
push dword [ebp - 0x6dc]
call dword [eax + 0x70]
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
push dword [ebp - 0x62c]
mov ecx, dword [ebp - 0x6dc]
push 0
push dword [ebp - 0x648]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push esi
push ebx
push dword [ebp - 0x720]
call fcn.3003eb08
mov dword [ebp - 0x628], eax
jmp 0x3004239b
mov eax, dword [ebp - 0x648]
cmp dword [eax + 0x48], esi
je 0x30041f48
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx eax, word [eax]
lea ecx, [eax - 1]
sub eax, dword [ebp - 0x6e0]
mov dword [ebp - 0x690], ecx
mov dword [ebp - 0x6f8], eax
je 0x30041f48
add ecx, edi
mov dword [ebp - 0x6b0], ecx
mov eax, dword [ebp - 0x690]
mov ecx, dword [ebp - 0x648]
mov edi, eax
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx + 0x4c]
mov dl, byte [eax]
xor esi, esi
and edi, 7
inc esi
mov ecx, edi
shl esi, cl
movzx ecx, dl
and esi, ecx
mov ecx, edi
mov bl, 1
shl bl, cl
mov ecx, dword [ebp - 0x6b0]
not bl
and bl, dl
mov byte [eax], bl
mov eax, ecx
cdq
and edx, 7
add eax, edx
mov edx, dword [ebp - 0x648]
sar eax, 3
lea eax, [eax + edx + 0x4c]
and ecx, 7
mov dl, 1
shl dl, cl
test esi, esi
je 0x30041f25
or byte [eax], dl
jmp 0x30041f29
not dl
and byte [eax], dl
dec dword [ebp - 0x690]
dec dword [ebp - 0x6b0]
dec dword [ebp - 0x6f8]
jne 0x30041ec3
mov edi, dword [ebp - 0x630]
mov ebx, pe_nt_image_headers32
cmp edi, ebx
jae 0x30042391
test edi, edi
jne 0x30041f60
mov dword [ebp - 0x628], 1
jmp 0x30041f8c
mov ebx, dword [ebp - 0x6e0]
mov edi, dword [ebp - 0x630]
lea eax, [ebp - 0x40c]
push eax
mov eax, dword [ebp - 0x62c]
call fcn.30030487
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x6b4]
cmp eax, 0xffffffff
je 0x3004239b
cmp eax, dword [ebp - 0x6e0]
jg 0x30041fae
jne 0x30041fba
cmp dword [ebp - 0x6fc], 0
je 0x30041fba
add eax, dword [ebp - 0x630]
mov dword [ebp - 0x6b4], eax
cmp dword [ebp - 0x6b4], 0xffffffff
je 0x3004235f
mov eax, dword [ebp - 0x648]
mov ecx, dword [eax + 0xc]
mov edi, dword [ebp + 0x14]
cmp edi, 0x7fff
mov dword [ebp - 0x6fc], ecx
mov ecx, dword [ebp - 0x6b4]
mov dword [eax], ecx
mov dword [eax + 0xc], 1
je 0x3004235f
test byte [ebp + 0x1c], 0x10
jne 0x3004235f
cmp dword [ebp - 0x724], 0
je 0x30042021
mov ecx, dword [ebp - 0x670]
push dword [ebp - 0x62c]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, edi
sub ecx, eax
jmp 0x30042174
test byte [ebp + 0x1c], 0x20
mov ebx, dword [ebp - 0x670]
je 0x3004207f
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx esi, word [eax]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
imul eax, esi
sub edi, eax
test byte [ebp + 0x1c], 4
je 0x30042071
mov esi, dword [ebp - 0x648]
cmp dword [esi + 0x10], 4
mov eax, dword [ebx]
mov ecx, ebx
jne 0x30042068
call dword [eax + 0x1c]
imul eax, dword [esi + 0x18]
neg eax
lea edi, [edi + eax*2]
jmp 0x30042071
call dword [eax + 0x1c]
imul eax, dword [esi + 0x18]
sub edi, eax
mov eax, edi
cdq
idiv dword [ebp - 0x6f4]
jmp 0x30042172
mov esi, dword [ebp - 0x62c]
mov eax, dword [esi]
mov ecx, dword [ebp - 0x644]
movzx edi, word [eax]
push ecx
add eax, 2
push ebx
mov dword [ebp - 0x720], eax
mov eax, dword [ecx]
push 0
call dword [eax + 0x13c]
neg eax
sbb eax, eax
and eax, 0x400
push eax
push edi
push dword [ebp - 0x720]
call fcn.3010535d
test eax, eax
mov eax, dword [ebx]
push esi
mov ecx, ebx
jne 0x300420f1
call dword [eax + 0xc]
mov edi, dword [ebp + 0x14]
sub edi, eax
test byte [ebp + 0x1c], 4
je 0x30042071
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov ecx, dword [ebp - 0x648]
imul eax, dword [ecx + 0x18]
cmp dword [ebp - 0x6fc], 7
jne 0x3004206f
jmp 0x30042061
call dword [eax + 0xc]
test byte [ebp + 0x1c], 4
mov dword [ebp - 0x690], eax
je 0x3004210b
mov eax, dword [ebp - 0x648]
mov edi, dword [eax + 0x18]
jmp 0x3004210d
xor edi, edi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
imul eax, edi
mov edi, dword [ebp + 0x14]
sub edi, eax
sub edi, dword [ebp - 0x690]
lea eax, [ebp - 0x624]
push eax
mov ecx, esi
call fcn.30030164
test eax, eax
jl 0x30042159
push dword [ebp - 0x70c]
mov ebx, dword [ebp - 0x6b4]
lea eax, [ebp - 0x624]
push eax
call fcn.30030449
test eax, eax
jl 0x30042159
lea edx, [ebp - 0x624]
push edx
jmp 0x3004215a
push esi
mov ecx, dword [ebp - 0x670]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, eax
sub ecx, dword [ebp - 0x690]
mov eax, edi
cdq
idiv ecx
mov ecx, eax
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx edx, word [eax]
mov eax, 0xff
sub eax, edx
jns 0x3004218a
xor eax, eax
test ecx, ecx
mov esi, ecx
jle 0x3004235f
cmp ecx, eax
jl 0x3004219a
mov esi, eax
test esi, esi
jle 0x3004235f
lea ecx, [ebp - 0x624]
call fcn.30030124
push dword [ebp - 0x70c]
mov eax, esi
xor edi, edi
call fcn.300305a5
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x624]
movzx edi, word [eax]
add eax, 2
test edi, edi
jne 0x300421df
xor eax, eax
inc eax
jmp 0x300421f1
mov ebx, dword [ebp - 0x6b4]
push eax
mov eax, dword [ebp - 0x62c]
call fcn.30030487
test eax, eax
mov ebx, dword [ebp - 0x648]
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebx + 0x48]
add dword [ebx], esi
test eax, eax
je 0x30042213
add esi, eax
mov dword [ebx + 0x48], esi
mov ecx, dword [ebp - 0x644]
push 5
call fcn.3013dcf3
test eax, eax
je 0x30042304
cmp dword [ebp - 0x724], 0
mov edi, dword [ebp + 0x14]
jne 0x30042267
cmp dword [ebp - 0x6fc], 7
jne 0x3004224a
test byte [ebp + 0x1c], 4
je 0x30042255
mov ebx, dword [ebx + 0x18]
add ebx, ebx
jmp 0x30042257
test byte [ebp + 0x1c], 4
je 0x30042255
mov ebx, dword [ebx + 0x18]
jmp 0x30042257
xor ebx, ebx
mov ecx, dword [ebp - 0x670]
mov eax, dword [ecx]
call dword [eax + 0x1c]
imul eax, ebx
sub edi, eax
push dword [ebp - 0x70c]
mov ebx, dword [ebp - 0x6b4]
push dword [ebp - 0x62c]
call fcn.30030449
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x648]
mov ecx, dword [eax + 0x48]
inc dword [eax]
test ecx, ecx
je 0x3004229f
inc ecx
mov dword [eax + 0x48], ecx
cmp dword [ebp - 0x724], 0
jne 0x30042300
mov ecx, dword [ebp - 0x670]
push dword [ebp - 0x62c]
mov eax, dword [ecx]
call dword [eax + 0xc]
cmp eax, edi
jle 0x30042304
mov eax, dword [ebp - 0x648]
mov edx, dword [ebp - 0x6b4]
mov esi, dword [ebp - 0x62c]
dec dword [eax]
xor ebx, ebx
inc ebx
call fcn.30030635
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [ebp - 0x648]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x300422a8
mov ecx, dword [ebp - 0x648]
dec eax
mov dword [ecx + 0x48], eax
jmp 0x300422a8
mov edi, eax
jmp 0x3004230a
mov edi, dword [ebp - 0x648]
mov ebx, dword [ebp - 0x670]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x50]
test eax, eax
je 0x3004235f
jmp 0x3004234d
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx eax, word [eax]
mov ecx, dword [ebp - 0x62c]
lea esi, [eax - 1]
call fcn.30030521
test eax, eax
mov dword [ebp - 0x628], eax
jl 0x3004239b
mov eax, dword [edi + 0x48]
dec dword [edi]
test eax, eax
je 0x3004234d
dec eax
mov dword [edi + 0x48], eax
push dword [ebp - 0x62c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
cmp eax, dword [ebp + 0x14]
jg 0x3004231d
test byte [ebp + 0x1c], 0x40
jne 0x30042378
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
movzx eax, word [eax]
cmp eax, dword [ebp - 0x734]
je 0x30042382
mov eax, dword [ebp - 0x648]
and dword [eax + 0x24], 0
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax]
cmp word [eax], 0xff
jbe 0x3004239b
mov dword [ebp - 0x628], 0x800a03ec
test byte [ebp - 0x770], 1
je 0x300423b5
mov ecx, dword [ebp - 0x774]
push dword [ebp - 0x77c]
mov eax, dword [ecx]
call dword [eax + 8]
test byte [ebp - 0x618], 1
je 0x300423e0
mov ecx, dword [ebp - 0x61c]
push dword [ebp - 0x624]
mov eax, dword [ecx]
call dword [eax + 8]
and dword [ebp - 0x618], 0xfffffffe
mov dword [ebp - 0x624], 0x302af7bc
test byte [ebp - 0x750], 1
je 0x300423fa
mov ecx, dword [ebp - 0x754]
push dword [ebp - 0x75c]
mov eax, dword [ecx]
call dword [eax + 8]
test byte [ebp - 0x780], 1
je 0x30042414
mov ecx, dword [ebp - 0x784]
push dword [ebp - 0x78c]
mov eax, dword [ecx]
call dword [eax + 8]
cmp dword [ebp - 0x6dc], 0
je 0x30042433
mov ecx, dword [ebp - 0x6dc]
call fcn.30038912
push dword [ebp - 0x6dc]
call fcn.300d55ad
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x628]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.3020156b
leave
ret 0x24