Function at 0x1007a9da
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
mov edx, dword [ebp + 0x20]
xor eax, eax
push ebx
push esi
mov esi, dword [ebp + 0x14]
mov ebx, ecx
mov ecx, dword [ebp + 0x24]
push edi
mov edi, edx
mov dword [esp + 0x68], ebx
and dword [ecx], 0
and dword [esi], 0
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
test eax, eax
jns 0x1007aa25
push ecx
push edx
push dword [ebp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x18]
push esi
push eax
call fcn.1007bf4e
jmp 0x1007bf45
cmp dword [ebx + 0x38], 0x2000
mov eax, 0xffff
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x1c]
jle 0x1007aaa4
mov edi, dword [ebp + 0x20]
mov dword [esi], 0x1000a1fc
and dword [eax], 0
mov eax, 0xffff
mov dword [edx], 1
mov word [edi], ax
mov esi, dword [ebx + 0x28]
lea ecx, [esi + 0x28]
call fcn.1005d1e6
push ecx
xor edx, edx
cwde
push edx
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push 0xd
lea ecx, [esp + 0xac]
push ecx
lea ecx, [esp + 0xac]
push ecx
push edx
push eax
push dword [esi + 0x14]
mov eax, 0xffff
mov ecx, ebx
push eax
push dword [ebp + 8]
call fcn.10078f4a
mov ecx, dword [ebp + 0x24]
mov dword [ecx], eax
jmp 0x1007beec
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x34]
push eax
push dword [ebp + 8]
lea ecx, [ebx + 0x34]
call fcn.10078963
mov esi, eax
mov eax, dword [ebp + 0x24]
mov dword [eax], esi
cmp esi, 0xffffffff
jne 0x1007aacf
mov eax, 0xfffe7960
jmp 0x1007bf45
cmp dword [esp + 0x54], 0
je 0x1007aadb
and dword [eax], 0
xor esi, esi
xor eax, eax
inc eax
test esi, esi
je 0x1007ab17
cmp dword [esi + 4], eax
jne 0x1007ab17
push dword [esp + 0x30]
lea ecx, [ebx + 0x34]
call fcn.10058f44
mov ecx, eax
mov dword [esp + 0x54], ecx
movzx edx, word [ecx + 6]
lea eax, [edx - 7]
cmp eax, 0xfff7
jbe 0x1007abf9
xor eax, eax
inc eax
cmp dx, ax
je 0x1007abfc
mov ecx, dword [ebp + 0x24]
and dword [ecx], 0
mov ecx, dword [ebp + 8]
cmp ecx, dword [ebx + 0x14]
jne 0x1007ab4d
cmp dword [ebx + 0x48], 0
je 0x1007ab3b
lea ecx, [ebx + 0x44]
and dword [ecx + 4], 0
push eax
call fcn.1005c4ed
mov ecx, dword [ebp + 8]
and dword [ebx + 0x38], 0
and dword [ebx + 0x2d8], 0
and dword [ebx + 0x39c], 0xffffffef
push ecx
mov ecx, ebx
call fcn.10078b9f
mov edi, dword [esp + 0x1c]
push eax
mov dword [esp + 0x40], eax
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x5c], ecx
mov ecx, edi
call fcn.10065a56
mov ecx, edi
call fcn.10065aea
mov esi, eax
mov ecx, edi
mov dword [esp + 0x34], esi
call fcn.10065b03
mov byte [esp + 0x17], 0
mov al, byte [eax]
and al, 1
mov byte [esp + 0x16], al
lea eax, [edi + 8]
mov ecx, eax
mov dword [esp + 0x2c], eax
call fcn.10064e7d
mov ecx, dword [esp + 0x1c]
mov di, ax
mov word [esp + 0x40], di
movzx eax, word [ecx + 0xda]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x80], eax
call fcn.10064f0f
and dword [esp + 0x74], 0
cmp dword [ebp + 0xc], 0
movzx eax, ax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
movsx eax, word [eax + 0x70]
mov dword [esp + 0x78], eax
mov eax, dword [esi]
mov dword [esp + 0x4c], eax
je 0x1007ac59
movzx eax, di
push eax
call fcn.1005fb20
test eax, eax
je 0x1007ac59
mov dword [esp + 0x44], 1
jmp 0x1007ac5e
xor eax, eax
inc eax
cmp dword [ebx + 0x2c], 0
je 0x1007ac2b
cmp dword [esi + 0x14], 0
je 0x1007ab17
push 0
push esi
mov ecx, ebx
call fcn.10078ecc
mov ecx, dword [ebp + 0x24]
mov dword [ecx], eax
test eax, eax
jne 0x1007ac27
push 0xfffffffffffffffe
pop eax
jmp 0x1007bf45
mov ecx, dword [esp + 0x54]
mov edx, dword [ebp + 0x14]
lea eax, [ecx + 8]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x20]
push edx
mov dword [eax], 1
mov eax, dword [ebp + 0x1c]
and dword [eax], 0
movzx eax, word [ecx + 6]
mov ecx, ebx
push eax
call fcn.10078a5d
xor eax, eax
jmp 0x1007bf45
and dword [esp + 0x44], 0
mov ecx, dword [esp + 0x4c]
xor eax, eax
mov edx, dword [esp + 0x1c]
and ecx, 0x30000000
cmp ecx, 0x10000000
mov dword [esp + 0x7c], ecx
push 4
sete al
and dword [esp + 0x1c], 0
mov dword [esp + 0xac], eax
pop eax
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x8c], eax
cmp dword [edx + 0xbc], eax
jge 0x1007ae12
mov al, byte [esi + 0x3c]
mov byte [esp + 0x17], al
mov byte [esp + 0x38], al
test al, al
jne 0x1007accd
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x1007accd
add ecx, 4
call fcn.10078934
mov byte [esp + 0x17], al
mov byte [esp + 0x38], al
push dword [esp + 0x38]
mov ecx, edx
call fcn.10076494
cmp dword [esp + 0x3c], 0
je 0x1007acff
lea esi, [edx + 0x28]
mov ecx, esi
call fcn.1005c8b7
mov ecx, dword [esp + 0x1c]
call fcn.10065aea
mov ecx, esi
mov eax, dword [eax]
mov dword [esp + 0x74], eax
call fcn.1005c8dc
mov eax, dword [esp + 0x24]
test ax, ax
je 0x1007ad24
movzx eax, ax
push eax
call fcn.1005fb20
test eax, eax
jne 0x1007ad24
test dword [esp + 0x74], 0x10000000
je 0x1007ad24
xor esi, esi
inc esi
jmp 0x1007ad26
xor esi, esi
test dword [esp + 0x4c], 0x10000000
je 0x1007ae06
movzx eax, di
push eax
call fcn.1005fb20
test eax, eax
jne 0x1007ae06
test esi, esi
je 0x1007ad56
mov eax, dword [esp + 0x3c]
cmp eax, dword [ebx + 0x10]
jne 0x1007ae12
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x18], 1
jne 0x1007ae12
cmp byte [esp + 0x16], 0
mov eax, dword [ebx + 0x2d8]
je 0x1007ad88
cmp eax, 1
jg 0x1007b014
test eax, eax
je 0x1007b084
jmp 0x1007ad90
test eax, eax
jne 0x1007b014
mov edx, dword [ebp + 0x14]
mov ecx, ebx
mov esi, dword [ebp + 0x24]
mov edi, dword [ebp + 0x20]
push 0x1000b244
push 0xf
push edx
push esi
push dword [ebp + 0x18]
push dword [ebp + 0x1c]
push edi
push dword [ebp + 8]
call fcn.10078ae0
mov eax, dword [esi]
test eax, eax
je 0x1007ac1f
mov byte [eax + 0x1d], 0x18
test byte [ebx + 0x39c], 0x10
jne 0x1007beec
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x1007adfa
push 0x68
call fcn.100c62e8
pop ecx
test eax, eax
je 0x1007aded
push dword [esi]
mov ecx, eax
push ebx
call fcn.10086822
jmp 0x1007adef
xor eax, eax
mov dword [ebx + 0x24], eax
test eax, eax
je 0x1007ac1f
or dword [ebx + 0x39c], 0x10
jmp 0x1007beec
test esi, esi
je 0x1007ae12
mov dword [esp + 0x44], 1
mov ecx, dword [esp + 0x58]
call fcn.10058f66
test eax, eax
je 0x1007b0b2
cmp dword [0x100d5680], 0
mov esi, dword [esp + 0x2c]
je 0x1007b0ac
mov eax, 0x200
test word [ecx + 0x56], ax
jne 0x1007b0ac
mov ecx, esi
call fcn.10064e70
test eax, eax
je 0x1007b0ac
mov ecx, dword [esp + 0x1c]
sub eax, 1
je 0x1007b0bf
mov eax, dword [esp + 0x58]
test dword [eax + 0x50], 0x800000
jne 0x1007b0bf
cmp dword [ecx + 0xbc], 0
jge 0x1007b0bf
lea esi, [ecx + 0x28]
mov eax, dword [esi]
test eax, eax
je 0x1007b0bc
cmp dword [eax + 4], 0
je 0x1007b0bc
and dword [esp + 0x38], 0
mov eax, dword [esp + 0x3c]
cmp eax, dword [ebx + 0x10]
je 0x1007aed2
call fcn.10065aa7
test eax, eax
je 0x1007aed2
call fcn.10065abc
test eax, eax
je 0x1007aed2
movzx eax, di
push eax
call fcn.1005fb20
test eax, eax
je 0x1007b0b2
cmp dword [ebx + 0x2d8], 0
jle 0x1007b0b2
mov dl, byte [esp + 0x16]
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x23], dl
mov byte [esp + 0x2b], dl
call fcn.10064e70
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
jge 0x1007af1d
and byte [esp + 0x11], 0xfe
lea eax, [esp + 0x10]
push eax
mov ecx, esi
mov byte [esp + 0x14], 0
call fcn.1005d205
movzx edi, byte [esp + 0x11]
mov dl, byte [esp + 0x16]
and edi, 1
mov ecx, dword [esp + 0x3c]
mov byte [esp + 0x23], al
mov dword [esp + 0x38], edi
cmp dword [esp + 0x18], 0
je 0x1007af2e
mov al, dl
test dl, dl
je 0x1007af7c
mov al, 2
jmp 0x1007af7c
cmp ecx, dword [ebx + 0x10]
jle 0x1007af78
mov edi, dword [esp + 0x1c]
mov ecx, edi
push 0xffffffffffffffff
call fcn.10065a00
test eax, eax
je 0x1007af78
mov ecx, dword [edi + 0x34]
test ecx, ecx
je 0x1007af62
cmp dword [ecx + 4], 0
je 0x1007af62
push dword [edi + 0x38]
call fcn.10058f44
mov cl, byte [esp + 0x16]
cmp byte [eax + 6], cl
jne 0x1007af6f
push 0
mov ecx, esi
call fcn.1005d205
mov byte [esp + 0x2b], al
push 1
mov ecx, edi
call fcn.10065a00
mov al, byte [esp + 0x2b]
movzx edi, byte [esp + 0x23]
movzx ecx, al
mov eax, edi
sub eax, ecx
cmp dword [esp + 0x38], 0
movzx eax, ax
mov edx, eax
mov dword [esp + 0x54], edx
je 0x1007afa5
mov al, byte [esp + 0x16]
movzx eax, al
sub ax, cx
movzx eax, ax
cwde
neg eax
jns 0x1007afb1
and dword [esp + 0x10], 0
jmp 0x1007afd5
movzx eax, ax
movzx esi, ax
mov dword [esp + 0x10], eax
test si, si
jle 0x1007afd5
push dword [esp + 0x30]
mov ecx, ebx
push dword [ebp + 8]
call fcn.10078cb6
movsx ecx, si
cmp eax, ecx
jl 0x1007afed
movzx eax, word [esp + 0x40]
push eax
call fcn.1005fb20
test eax, eax
je 0x1007b020
cmp dword [ebx + 0x2d8], 0
jle 0x1007b020
mov eax, dword [ebx + 0x2d8]
test eax, eax
jle 0x1007b020
cmp byte [esp + 0x16], 0
je 0x1007b014
cmp eax, 1
jne 0x1007b014
cmp dword [ebp + 0xc], 0
je 0x1007b014
cmp dword [esp + 0x44], 0
jne 0x1007b0dd
push 0x1000b24c
push 0x8001
jmp 0x1007b08b
cmp dword [esp + 0x38], 0
je 0x1007b036
mov al, byte [esp + 0x16]
movzx eax, al
sub di, ax
movzx edi, di
jmp 0x1007b03a
mov edi, dword [esp + 0x54]
test di, di
jle 0x1007b0b2
cmp dword [esp + 0x44], 0
je 0x1007b051
cmp dword [ebp + 0xc], 0
jne 0x1007b051
xor esi, esi
inc esi
jmp 0x1007b053
xor esi, esi
push dword [esp + 0x30]
mov ecx, ebx
push dword [ebp + 8]
call fcn.10078cb6
mov edx, dword [esp + 0x10]
movsx ecx, dx
add ecx, esi
movsx edx, di
add edx, ecx
add edx, dword [esp + 0x18]
cmp eax, edx
jge 0x1007b0b2
cmp dword [esp + 0x44], 0
je 0x1007b084
cmp dword [ebp + 0xc], 0
jne 0x1007b0dd
push 0x1000b218
push 1
mov edx, dword [ebp + 0x14]
mov ecx, ebx
mov esi, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x20]
push edx
push dword [ebp + 0x24]
push dword [ebp + 0x18]
push esi
push edi
push dword [ebp + 8]
call fcn.10078ae0
jmp 0x1007beef
mov ecx, dword [esp + 0x1c]
jmp 0x1007b0bf
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
jmp 0x1007b0bf
lea esi, [ecx + 8]
cmp dword [esp + 0x44], 0
je 0x1007b10f
cmp dword [ebp + 0xc], 0
je 0x1007b10f
movzx eax, byte [esp + 0x16]
cmp dword [ebx + 0x2d8], eax
jg 0x1007b014
mov edx, dword [ebp + 0x14]
mov ecx, ebx
mov esi, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x20]
push 0x1000b248
push 0x800f
push edx
push dword [ebp + 0x24]
push dword [ebp + 0x18]
push esi
push edi
push dword [ebp + 8]
call fcn.10078ae0
and dword [ebx + 0x39c], 0xffffffef
jmp 0x1007beef
mov byte [esp + 0x44], 0
call fcn.10065abc
mov edx, dword [esp + 0x34]
mov edi, eax
and dword [esp + 0x60], 0
xor ecx, ecx
and dword [esp + 0x84], 0
mov dword [esp + 0x6c], SysReAllocStringLen
mov al, byte [edx + 4]
cmp al, 0xa
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
sete cl
mov byte [esp + 0x23], al
cmp byte [edx + 0x24], 2
mov dword [esp + 0xac], ecx
jne 0x1007b16b
test byte [esp + 0x4c], 4
je 0x1007b16b
mov dword [esp + 0x88], 1
jmp 0x1007b173
and dword [esp + 0x88], 0
mov eax, dword [esp + 0x1c]
add eax, 0x28
mov ecx, eax
mov dword [esp + 0x54], eax
call fcn.1005d1e6
mov ecx, dword [esp + 0x58]
cwde
mov dword [esp + 0x5c], eax
mov eax, dword [ecx + 0x44]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x84]
push eax
push dword [esp + 0x40]
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.10059fbd
mov eax, dword [esp + 0x4c]
and eax, 0x100
mov dword [esp + 0x90], eax
jne 0x1007b8de
lea eax, [esp + 0x48]
mov ecx, esi
push eax
call fcn.10064f30
mov esi, dword [ebp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [esi], eax
mov ecx, dword [edx + 0xbc]
test ecx, ecx
js 0x1007b201
mov eax, dword [esp + 0x3c]
sub eax, ecx
cmp eax, 1
jbe 0x1007b1f3
xor eax, eax
inc eax
lea eax, [eax*2 + 0x1000b22c]
xor ecx, ecx
mov dword [esi], eax
inc ecx
jmp 0x1007b205
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x1007b227
mov eax, dword [esi]
mov ebx, 0xffff
cmp word [eax], bx
mov ebx, dword [esp + 0x68]
jne 0x1007b227
add eax, 2
dec ecx
mov dword [esi], eax
mov dword [esp + 0x48], ecx
cmp edi, ecx
jl 0x1007b235
mov edi, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
mov edx, dword [edx + 0x84]
lea ecx, [edx + 0xc]
call fcn.10059040
mov ecx, 0xff
test eax, eax
je 0x1007b252
cmp dword [edx + 0x1c], 0
jne 0x1007b260
cmp edi, ecx
jl 0x1007b260
mov edi, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x3c]
cmp dword [ebx + 0x10], eax
jne 0x1007b2f8
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0xe0], 0
je 0x1007b2f8
mov ecx, dword [0x100d4fb4]
test ecx, ecx
jne 0x1007b2b9
push 0x10
call fcn.100c62e8
pop ecx
mov ecx, eax
test ecx, ecx
je 0x1007b2a5
xor eax, eax
mov dword [ecx + 0xc], 8
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
jmp 0x1007b2a7
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov dword [0x100d4fb4], ecx
test ecx, ecx
je 0x1007ac1f
movzx eax, byte [eax + 0xe0]
lea edx, [esp + 0x40]
push edx
lea edx, [esp + 0xa8]
push edx
push eax
call fcn.1007232f
cmp dword [esp + 0xa4], 5
jne 0x1007b2f8
mov ax, word [esp + 0x40]
lea ecx, [ebx + 0x1e4]
xor edi, edi
mov word [ecx], ax
inc edi
mov dword [esi], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
cmp word [esp + 0x80], 0
je 0x1007b380
cmp edi, 0x40
jl 0x1007b313
push 0x40
pop edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
xor esi, esi
test edi, edi
jle 0x1007b375
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
movzx eax, word [eax + esi*2]
mov edi, eax
mov word [esp + 0x40], ax
mov ecx, edi
lea eax, [ecx - 0xdc00]
cmp eax, 0x3ff
ja 0x1007b34c
test esi, esi
je 0x1007b43e
mov edi, esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
jmp 0x1007b370
push ecx
call fcn.1005fb20
test eax, eax
je 0x1007b35a
mov eax, edi
jmp 0x1007b364
mov eax, dword [esp + 0x80]
movzx eax, ax
mov edi, dword [esp + 0x10]
mov word [ebx + esi*2 + 0x1e4], ax
inc esi
cmp esi, edi
jl 0x1007b319
mov esi, dword [ebp + 0x14]
lea eax, [ebx + 0x1e4]
mov dword [esi], eax
mov edx, dword [esp + 0x78]
cmp edx, 0xffffffff
je 0x1007b3c4
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x14]
cmp ecx, edx
jge 0x1007b3ab
lea eax, [ecx + edi]
cmp eax, edx
jle 0x1007b3a9
mov edi, edx
sub edi, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
jmp 0x1007b3c8
cmp ecx, edx
jne 0x1007b3c4
mov eax, dword [ebp + 0x20]
xor edi, edi
inc edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
or dword [eax + 8], 0x20000
jmp 0x1007b3c8
mov edi, dword [esp + 0x10]
test byte [esp + 0x4c], 0xc0
jne 0x1007b40f
mov ecx, dword [esp + 0x34]
cmp byte [ecx + 4], 0x35
jne 0x1007b4dd
test edi, edi
jle 0x1007b4dd
mov eax, dword [esi]
test eax, eax
je 0x1007b4dd
movzx eax, word [eax]
sub eax, 0xd800
cmp eax, 0x7ff
ja 0x1007b4dd
call fcn.1007129d
test eax, eax
jne 0x1007b4dd
cmp edi, 0x40
jl 0x1007b41f
push 0x40
pop edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x34]
mov ecx, dword [esi]
cmp byte [eax + 4], 0x35
jne 0x1007b4c2
movzx eax, word [ecx]
sub eax, 0xdc00
cmp eax, 0x3ff
ja 0x1007b4a0
mov edi, dword [ebp + 0x20]
lea eax, [esp + 0x6c]
push ecx
xor ecx, ecx
mov esi, 0xffff
push ecx
push dword [esp + 0x40]
push dword [esp + 0x3c]
push ecx
push dword [esp + 0x54]
push edi
push eax
push ecx
push dword [esp + 0x80]
mov ecx, ebx
push dword [esp + 0x64]
push esi
push dword [ebp + 8]
call fcn.10078f4a
mov ecx, dword [ebp + 0x24]
mov dword [ecx], eax
test eax, eax
je 0x1007b489
push 0
push edi
push eax
push esi
mov ecx, ebx
call fcn.1007a513
mov esi, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov dword [esi], 1
mov dword [edx], 1
jmp 0x1007bef2
movzx ecx, word [ecx + 2]
lea esi, [ebx + 0x1e4]
xor eax, eax
mov edx, esi
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
call fcn.10087213
mov byte [esp + 0x44], al
jmp 0x1007b4d6
lea eax, [edi + edi]
push eax
push ecx
lea esi, [ebx + 0x1e4]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [ebp + 0x14]
mov dword [edx], esi
jmp 0x1007b4e0
mov edx, dword [ebp + 0x14]
mov esi, dword [esp + 0x2c]
mov ecx, esi
call fcn.10064e70
cmp dword [esp + 0x48], 0
sete cl
cmp dword [esp + 0x3c], eax
jge 0x1007b8c1
test cl, cl
jne 0x1007b8c1
mov eax, dword [edx]
test eax, eax
je 0x1007b564
movzx eax, word [eax]
push 0xc
pop ecx
cmp ax, cx
je 0x1007b55c
push 7
pop ecx
cmp ax, cx
je 0x1007b55c
mov ecx, 0xad
cmp ax, cx
jne 0x1007b542
cmp byte [esp + 0x23], 0xa
jne 0x1007b564
mov dword [edx], 0x1000b21c
xor edi, edi
inc edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
jmp 0x1007b568
push 9
pop ecx
cmp ax, cx
jne 0x1007b564
cmp dword [esp + 0x7c], 0x10000000
jne 0x1007b564
mov dword [edx], 0x1000b238
jmp 0x1007b535
mov dword [edx], 0x1000a1fc
jmp 0x1007b535
mov edi, dword [esp + 0x10]
mov ecx, esi
call fcn.10064e7d
movzx eax, ax
mov ecx, 0xfdee
sub eax, ecx
cmp eax, 1
ja 0x1007b6e9
mov eax, dword [esp + 0x24]
cmp ax, cx
je 0x1007b59c
movzx eax, ax
sub eax, 0xfdd0
cmp eax, 3
ja 0x1007b6e9
mov eax, dword [ebp + 8]
mov ecx, ebx
dec eax
push eax
call fcn.10078c5a
test eax, eax
jne 0x1007b6e9
mov eax, dword [esp + 0x64]
test eax, eax
je 0x1007b5c0
mov eax, dword [eax + 0x74]
and eax, 0x60
jmp 0x1007b5c2
xor eax, eax
mov esi, 0x1000b240
test eax, eax
jne 0x1007b68f
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x38]
jne 0x1007b5ed
cmp dword [esp + 0x3c], eax
jne 0x1007b5ed
cmp dword [esp + 0x84], 0
je 0x1007b699
mov eax, dword [esp + 0x34]
mov cl, byte [eax + 0x2d]
mov byte [esp + 0x23], cl
cmp cl, 0x12
jne 0x1007b605
mov dl, byte [eax + 0x2e]
cmp dl, 2
jb 0x1007b611
cmp cl, 0x1e
jne 0x1007b663
mov dl, byte [eax + 0x2e]
test dl, dl
je 0x1007b663
xor eax, eax
cmp dl, 1
sete al
cmp cl, 0x1e
jne 0x1007b626
xor eax, eax
cmp dl, 1
setne al
mov ecx, dword [esp + 0x2c]
test eax, eax
je 0x1007b64d
push 0xfffffffffffffffe
call fcn.10064e9b
movzx eax, ax
mov ecx, 0xfdee
cmp eax, ecx
je 0x1007b699
add eax, 0xffff0230
cmp eax, 3
jbe 0x1007b699
jmp 0x1007b694
push 1
call fcn.10064e9b
movzx eax, ax
mov ecx, 0xfdee
sub eax, ecx
cmp eax, 1
jmp 0x1007b649
cmp byte [eax + 0x2e], 2
jae 0x1007b66e
cmp cl, 0x15
je 0x1007b694
cmp cl, 0x19
jne 0x1007b68a
mov ecx, dword [esp + 0x2c]
call fcn.10064e7d
mov ecx, 0xfdee
cmp ax, cx
je 0x1007b694
mov cl, byte [esp + 0x23]
cmp cl, 0x14
jmp 0x1007b692
cmp eax, 0x40
jne 0x1007b699
mov esi, 0x1000b23c
mov edi, dword [ebp + 0x20]
mov ecx, ebx
push esi
mov esi, dword [ebp + 0x24]
push 0xe
push dword [ebp + 0x14]
push esi
push dword [ebp + 0x18]
push dword [ebp + 0x1c]
push edi
push dword [ebp + 8]
call fcn.10078ae0
push 0
push edi
push dword [esi]
mov eax, 0xffff
mov ecx, ebx
push eax
call fcn.1007a513
mov cl, byte [esp + 0x17]
movzx eax, cl
dec eax
cmp eax, 3
jbe 0x1007b6df
mov byte [esp + 0x17], 4
mov cl, byte [esp + 0x17]
mov eax, dword [esi]
mov byte [eax + 0x1e], cl
jmp 0x1007beec
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0xec]
test eax, eax
jne 0x1007b6fc
call fcn.10065b03
mov cl, byte [eax + 0x10]
or esi, 0xffffffff
movzx eax, cl
sub eax, 6
cmp eax, 1
ja 0x1007b719
mov eax, dword [esp + 0x58]
test byte [eax + 0x72], 0x20
jne 0x1007b719
mov cl, 4
movzx eax, cl
sub eax, 5
cmp eax, 2
jbe 0x1007b72e
mov eax, dword [esp + 0x34]
test byte [eax + 0x34], 0x1c
je 0x1007b758
lea eax, [esp + 0x78]
push eax
push dword [esp + 0x48]
lea ecx, [ebx + 0x28]
push 0
call fcn.10080b35
test al, al
je 0x1007bee9
push dword [esp + 0x78]
push dword [esp + 0x38]
call fcn.100790d1
mov esi, eax
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0xbc], 0
jl 0x1007b76e
mov esi, 0xffff
mov edx, esi
jmp 0x1007b7e0
mov ecx, dword [esp + 0x58]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.10058f80
mov ecx, dword [esp + 0x24]
push eax
lea eax, [esp + 0x98]
push eax
mov eax, dword [esp + 0x44]
movzx eax, byte [eax + 0x2d]
push eax
push dword [esp + 0xbc]
push dword [esp + 0xa0]
push esi
push dword [esp + 0xcc]
call fcn.100111cc
xor ecx, ecx
lea edx, [esp + 0x3c]
cmp al, 1
mov eax, dword [ebp + 0x14]
sete cl
push ecx
mov ecx, dword [eax]
push 0
call fcn.10078665
mov edi, dword [esp + 0x18]
mov edx, eax
mov eax, dword [esp + 0x8c]
mov esi, 0xffff
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], edi
push 3
lea ecx, [edx - 3]
mov dword [esp + 0x4c], edx
pop eax
cmp ecx, eax
ja 0x1007b7fd
cmp dword [ebx + 0x2d8], 0
je 0x1007b7fd
mov edx, esi
mov dword [esp + 0x48], edx
mov esi, dword [esp + 0x38]
cmp dword [esp + 0x30], esi
je 0x1007b871
mov ecx, dword [esp + 0x3c]
cmp ecx, dword [esp + 0x30]
jl 0x1007b85e
cmp ecx, esi
jge 0x1007b871
mov eax, esi
sub eax, ecx
cmp edi, eax
jl 0x1007b821
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
cmp byte [eax + 0xe6], 0
jge 0x1007b875
movzx ecx, byte [edi + 0x2c]
lea eax, [edx - 2]
cmp eax, 4
ja 0x1007b852
test ecx, ecx
jle 0x1007b852
cmp edx, 2
jne 0x1007b851
cmp dword [esp + 0x50], 0xff
jne 0x1007b852
dec ecx
mov eax, dword [esp + 0x1c]
mov byte [eax + 0xe6], cl
jmp 0x1007b875
lea eax, [edi + ecx]
cmp eax, dword [esp + 0x30]
jl 0x1007b871
mov edi, dword [esp + 0x30]
sub edi, ecx
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x7c], 0x10000000
je 0x1007b89a
push 4
pop eax
cmp word [edi + 6], ax
jne 0x1007b89a
cmp byte [edi + 4], 0x35
je 0x1007b89a
test byte [esp + 0x4c], 3
je 0x1007b89a
mov byte [esp + 0x44], 0xf
cmp byte [edi + 4], 0xa
jne 0x1007b8e2
mov ecx, dword [esp + 0x2c]
push 0
call fcn.10064e9b
push 9
pop ecx
cmp ax, cx
jne 0x1007b8e2
cmp byte [esp + 0x44], 0
jne 0x1007b8e2
mov byte [esp + 0x44], 0xd
jmp 0x1007b8e2
mov esi, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x20]
mov dword [edx], 0x1000a1fc
mov edx, dword [ebp + 0x18]
and dword [esi], 0
mov dword [edx], 1
jmp 0x1007bef2
mov esi, dword [esp + 0x38]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
test eax, eax
je 0x1007b8f0
movzx edi, word [eax]
jmp 0x1007b8f2
xor edi, edi
push ecx
push dword [esp + 0x48]
lea eax, [esp + 0x74]
mov dword [esp + 0x48], edi
push esi
push dword [esp + 0x3c]
mov ecx, ebx
push dword [ebp + 0x1c]
push edi
push dword [ebp + 0x20]
push eax
push 0
push dword [esp + 0x80]
push dword [esp + 0x64]
push dword [esp + 0x74]
push dword [ebp + 8]
call fcn.10078f4a
mov esi, dword [ebp + 0x24]
mov dword [esi], eax
test eax, eax
je 0x1007bda4
cmp dword [esp + 0x60], 0
mov edx, dword [ebp + 0x20]
je 0x1007b956
cmp dword [ebx + 0x2c], 0
jne 0x1007b956
mov eax, edx
mov eax, dword [eax + 8]
or eax, 0x400
and eax, 0xfffffffe
mov dword [edx + 8], eax
mov eax, dword [esi]
push dword [ebp + 0x1c]
mov ecx, ebx
push edx
push eax
push dword [esp + 0x54]
call fcn.1007a513
test dword [esp + 0x4c], 0x10000000
je 0x1007bd92
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
je 0x1007bd92
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0xbc], 0
jge 0x1007bd92
mov ecx, dword [esp + 0x2c]
push 1
call fcn.10064e9b
mov edx, dword [esp + 0x4c]
movzx ecx, ax
mov eax, dword [esi]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], 0x2c
mov dword [esp + 0x60], 0x2e
mov byte [eax + 0x1d], 0x18
mov eax, edx
and eax, 0x38000000
mov dword [esp + 0x5c], 0x5f
mov dword [esp + 0x30], 0x20
cmp eax, 0x10000000
jne 0x1007bb75
cmp di, word [esp + 0x30]
jne 0x1007baf0
mov eax, dword [esp + 0x24]
cmp ax, word [esp + 0x38]
je 0x1007ba05
cmp ax, word [esp + 0x60]
je 0x1007ba05
cmp ecx, 0x3a
jne 0x1007bb75
mov esi, dword [esp + 0x54]
lea edi, [esp + 0x94]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x94]
push 1
movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0xa4], eax
call fcn.1005c62c
lea ecx, [esp + 0x94]
call fcn.1005d1e6
mov ecx, dword [esp + 0xa0]
cwde
push eax
call fcn.1005abf9
mov edx, dword [esp + 0x18]
mov edi, 0x10000000
test dword [eax], edi
je 0x1007bae7
mov ecx, 0xfdee
movzx eax, dx
sub eax, ecx
xor ecx, ecx
inc ecx
cmp eax, ecx
jbe 0x1007bae7
mov eax, dword [esp + 0x24]
cmp ax, word [esp + 0x38]
jne 0x1007bade
mov esi, dword [esp + 0x10]
cmp esi, ecx
jle 0x1007bade
cmp dx, word [esp + 0x30]
jne 0x1007bade
push ecx
lea ecx, [esp + 0x98]
call fcn.1005c62c
test eax, eax
je 0x1007bca7
lea ecx, [esp + 0x94]
call fcn.1005d1e6
mov ecx, dword [esp + 0xa0]
cwde
push eax
call fcn.1005abf9
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
test dword [eax], edi
mov edi, dword [esp + 0x40]
je 0x1007bb81
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], 2
mov dword [eax], 1
jmp 0x1007bb7d
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], ecx
mov dword [eax], ecx
mov edi, dword [esp + 0x40]
jmp 0x1007bb79
movzx eax, di
sub eax, 0x5e
cmp eax, 1
ja 0x1007bbe5
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x1007bbe5
mov eax, dword [esp + 0x64]
test eax, eax
je 0x1007bb1c
test byte [eax + 0x74], 0x80
jne 0x1007bbe5
lea eax, [esp + 0x64]
push eax
push 0
push 0
call fcn.10086de0
mov eax, dword [esp + 0x64]
cmp di, word [esp + 0x5c]
jne 0x1007bb49
test eax, eax
je 0x1007bb42
mov ecx, dword [ebp + 0x20]
mov eax, dword [eax + 0x20]
sub dword [ecx + 0xc], eax
mov eax, 0x1000b234
jmp 0x1007bb5b
test eax, eax
je 0x1007bb56
mov ecx, dword [ebp + 0x20]
mov eax, dword [eax + 0x30]
add dword [ecx + 0xc], eax
mov eax, 0x1000b230
mov edx, dword [ebp + 0x14]
push 3
pop ecx
mov dword [edx], eax
movzx eax, byte [esp + 0x17]
dec eax
cmp ecx, eax
sbb al, al
and al, 2
inc al
mov byte [esp + 0x17], al
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x48], 2
jne 0x1007bd96
movzx eax, di
sub eax, 0x2c
cmp eax, 2
ja 0x1007bd1f
cmp di, 0x2d
je 0x1007bd1f
push 7
pop eax
mov dword [esp + 0x50], eax
cmp dx, word [esp + 0x30]
jne 0x1007bcc1
cmp di, word [esp + 0x38]
jne 0x1007bd1f
mov ecx, dword [esp + 0x2c]
push 2
call fcn.10064e9b
cmp ax, word [esp + 0x30]
jne 0x1007bd1f
mov dword [esp + 0x50], 1
jmp 0x1007bd1f
cmp di, 0x3a
jne 0x1007bc14
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
cmp cx, word [esp + 0x30]
jne 0x1007bb81
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x50], 5
mov dword [eax], 0x1000b228
jmp 0x1007bb81
mov eax, 0x2026
cmp di, ax
jne 0x1007bc72
mov ecx, dword [esp + 0x24]
push 0x26
pop eax
cmp cx, ax
jne 0x1007bc55
mov ebx, dword [esp + 0x2c]
push 0xfffffffffffffffe
pop esi
push esi
mov ecx, ebx
call fcn.10064e9b
movzx edi, ax
dec esi
push 0x26
pop eax
mov dword [esp + 0x24], edi
cmp di, ax
je 0x1007bc31
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov eax, 0x22c5
cmp cx, ax
je 0x1007bcb8
lea eax, [esp + 0x70]
push eax
lea edx, [esp + 0x6c]
call fcn.10087a74
jmp 0x1007bb75
mov eax, 0xd835
cmp di, ax
jne 0x1007bb75
test dl, 3
je 0x1007bb75
cmp byte [esp + 0x44], 0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
jne 0x1007bb7d
mov eax, dword [esi]
mov byte [eax + 0x21], 0xe
jmp 0x1007bb7d
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
jmp 0x1007bb81
mov edx, dword [esp + 0x18]
jmp 0x1007bb7d
movzx eax, dx
push 9
sub eax, 0x30
pop edx
cmp eax, edx
ja 0x1007bd1f
test cx, cx
je 0x1007bd18
movzx ecx, cx
lea eax, [ecx - 0x30]
cmp eax, edx
jbe 0x1007bd18
lea eax, [ecx - 0xfdd0]
cmp eax, 0x1e
jbe 0x1007bd18
cmp di, word [esp + 0x60]
jne 0x1007bd1f
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x70]
push eax
lea edx, [esp + 0x6c]
call fcn.10087a74
cmp dword [esp + 0x68], 0
je 0x1007bd1f
cmp dword [esp + 0x70], 2
je 0x1007bd1f
push 7
pop eax
cmp dword [esp + 0x70], eax
je 0x1007bd1f
push 4
pop eax
mov dword [esp + 0x50], eax
mov edx, dword [ebp + 0x24]
mov ecx, dword [esp + 0x50]
push 0xc
mov eax, dword [edx]
mov byte [eax + 0x1f], cl
mov eax, dword [edx]
pop ecx
mov byte [eax + 0x1d], cl
mov eax, 0xfdd0
cmp di, ax
jne 0x1007bd96
mov edi, dword [esp + 0x34]
mov eax, dword [edx]
mov cl, byte [edi + 0x2d]
sub cl, 0xa
mov byte [eax + 0x1d], cl
mov eax, dword [ebx + 0x24]
cmp byte [eax + 0x65], 0
jne 0x1007bd96
cmp byte [edi + 0x2d], 0x13
jne 0x1007bd96
mov eax, dword [esp + 0x5c]
cmp word [edi + 0x20], ax
jne 0x1007bd96
test dword [esp + 0x74], 0x1000000
je 0x1007bd96
mov ecx, dword [esp + 0x54]
call fcn.1005c8b7
mov ecx, dword [esp + 0x1c]
call fcn.10065aea
cmp byte [eax + 0x2d], 0x11
jne 0x1007bd96
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov byte [eax + 0x1d], 0x13
jmp 0x1007bd96
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 0x24]
mov cl, byte [esp + 0x17]
mov eax, dword [eax]
mov byte [eax + 0x1e], cl
jmp 0x1007bda8
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
cmp eax, 5
je 0x1007bdd2
mov edx, dword [esp + 0x34]
mov cl, byte [edx + 0x2d]
cmp cl, 2
jne 0x1007bdc6
mov edi, 0xffff
cmp eax, edi
je 0x1007bdd2
xor eax, eax
inc eax
cmp cl, al
jne 0x1007bde1
cmp byte [edx + 0x2e], al
je 0x1007bde1
mov edi, dword [ebp + 0x20]
xor eax, eax
and dword [edi + 8], 0xfff9ffff
inc eax
jmp 0x1007bde4
mov edi, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x24]
test esi, esi
jne 0x1007be0c
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1000a1fc
mov eax, dword [ebp + 0x1c]
and dword [eax], esi
mov eax, dword [ecx]
test eax, eax
je 0x1007be0c
and dword [eax + 0x18], esi
mov eax, dword [ecx]
or dword [eax + 8], 0xffffffff
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x6c]
jl 0x1007be1a
mov eax, dword [esp + 0x6c]
mov edx, dword [ebp + 0x18]
mov dword [edx], eax
mov eax, dword [esp + 0x58]
test dword [eax + 0x5c], 0x400
je 0x1007be69
mov esi, dword [edi + 8]
test esi, 0x800000
jne 0x1007be69
cmp dword [ecx], 0
je 0x1007be69
push dword [ecx]
mov ecx, ebx
call fcn.1007c1dc
mov edx, 0x3ff
mov cx, word [eax + 0x18]
and cx, dx
cmp cx, 0x11
je 0x1007be5d
cmp byte [eax + 4], 0xc
jne 0x1007be66
or esi, 0x800000
mov dword [edi + 8], esi
mov edx, dword [ebp + 0x18]
cmp byte [0x100d5046], 3
mov esi, dword [ebp + 0x1c]
jne 0x1007bee4
cmp dword [esi], 0
jne 0x1007bee4
cmp dword [edx], 0
mov edx, dword [ebp + 0x14]
jle 0x1007beb2
mov eax, dword [edx]
test eax, eax
je 0x1007beb2
movzx eax, word [eax]
push 9
sub eax, 0x30
pop ecx
cmp eax, ecx
ja 0x1007beb2
mov eax, dword [ebp + 0x24]
mov esi, dword [eax]
test esi, esi
je 0x1007beaf
mov ecx, dword [0x100d5308]
call fcn.1005fa68
mov edx, dword [ebp + 0x14]
mov byte [esi + 0x22], al
mov esi, dword [ebp + 0x1c]
cmp dword [esp + 0x90], 0
je 0x1007bed0
mov ecx, dword [esp + 0x2c]
call fcn.10064e70
test eax, eax
je 0x1007beca
dec eax
cmp dword [esp + 0x3c], eax
je 0x1007bed9
cmp dword [ebx + 0x38], 0x4000
jle 0x1007beef
mov dword [edx], 0x1000a1fc
and dword [esi], 0
jmp 0x1007beef
mov edx, dword [ebp + 0x14]
jmp 0x1007beb2
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax]
test ecx, ecx
je 0x1007bf00
mov eax, dword [edx]
mov dword [ecx + 4], eax
xor ecx, ecx
cmp dword [esi], ecx
jne 0x1007bf11
cmp dword [ebx + 0x14], ecx
jge 0x1007bf11
mov eax, dword [ebp + 8]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0xbc], ecx
jl 0x1007bf36
mov dword [edx], 1
xor eax, eax
mov dword [esi], ecx
mov ecx, 0xffff
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x20]
mov word [eax], cx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
neg eax
sbb eax, eax
and eax, 2
sub eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20