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

Disassembly:
sub esp, 0x2a4
mov eax, dword [0x101c3584]
xor eax, esp
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x2a8]
push ebx
push ebp
mov ebp, ecx
mov ecx, dword [ebp + 0x2cc]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x2c8]
lea edx, [eax + eax*2]
mov dword [esp + 0x48], edx
mov edx, eax
sar edx, 3
mov dword [esp + 0x50], edx
mov edx, ecx
and eax, 7
and ecx, 7
push esi
mov esi, dword [esp + 0x2b8]
sar edx, 3
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x50], ecx
xor ecx, ecx
cmp edx, eax
push edi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x48], edx
mov word [esp + 0x68], ax
mov word [esp + 0x6a], cx
mov word [esp + 0x6c], ax
mov dword [esp + 0x18], 7
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], eax
jle 0x1007c07c
cmp dword [esp + 0x58], 0
mov edi, dword [esp + 0x28]
mov dword [esp + 0x24], edi
jle 0x1007bdd7
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x20], ecx
lea ecx, [ecx]
mov esi, dword [esp + 0x38]
xor edx, edx
push 0x7e
push edx
lea eax, [esp + 0x13a]
push eax
mov word [esp + 0x13c], dx
call fcn.1013f910
xor ecx, ecx
push 0x7e
push ecx
lea edx, [esp + 0x1c6]
push edx
mov word [esp + 0x1c8], cx
call fcn.1013f910
xor eax, eax
push 0x7e
push eax
lea ecx, [esp + 0x252]
push ecx
mov word [esp + 0x254], ax
call fcn.1013f910
push 0x3f
lea edx, [esp + 0x119]
push 0
push edx
mov byte [esp + 0x120], 0
call fcn.1013f910
push 0x3f
lea eax, [esp + 0xa5]
push 0
push eax
mov byte [esp + 0xac], 0
call fcn.1013f910
push 0x3f
lea ecx, [esp + 0xf1]
push 0
push ecx
mov byte [esp + 0xf8], 0
call fcn.1013f910
mov ecx, dword [esp + 0xb0]
add esp, 0x48
push 0
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
push esi
push ecx
lea edx, [esp + 0x144]
push edx
mov ecx, ebp
call fcn.10078f80
mov edx, dword [esp + 0x6a]
push 1
mov word [esp + 0x6c], ax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
push esi
push edx
lea eax, [esp + 0x1c4]
push eax
mov ecx, ebp
call fcn.10078f80
push 2
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
mov word [esp + 0x76], ax
mov eax, dword [esp + 0x78]
push esi
push eax
lea ecx, [esp + 0x244]
push ecx
mov ecx, ebp
call fcn.10078f80
mov word [esp + 0x6c], ax
lea edx, [esp + 0xf0]
push edx
lea eax, [esp + 0x134]
push eax
mov ecx, ebp
call fcn.100787c0
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0x1b4]
push edx
mov ecx, ebp
call fcn.100787c0
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x234]
push ecx
mov ecx, ebp
call fcn.100787c0
lea esi, [edi + 2]
xor edx, edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x1c], 8
lea esp, [esp]
lea eax, [esp + edx + 0xf0]
lea ecx, [eax + 3]
mov dword [esp + 0x34], ecx
lea ecx, [esp + edx + 0xb0]
lea edi, [ecx + 1]
mov dword [esp + 0x14], edi
lea edi, [esp + edx + 0x70]
mov edx, eax
mov ebx, ecx
sub edx, edi
sub ebx, edi
sub eax, ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x60], 2
jmp 0x1007bb28
mov ebx, dword [esp + 0x64]
mov edx, dword [esp + 0x44]
movzx ecx, byte [edx + edi]
movzx ebp, byte [edi]
movzx ebx, byte [ebx + edi]
mov edx, dword [ebx*4 + 0x10174220]
shl ecx, 0x10
mov eax, ecx
sub eax, dword [ebp*4 + 0x10174620]
lea edx, [edx + ecx + 0x8000]
sub eax, dword [ebx*4 + 0x10174a20]
mov ebx, dword [ebp*4 + 0x10174e20]
add eax, 0x8000
lea ecx, [ebx + ecx + 0x8000]
sar edx, 0x10
sar eax, 0x10
sar ecx, 0x10
cmp edx, 0xff
jg 0x1007bb80
test edx, edx
jge 0x1007bb85
xor edx, edx
jmp 0x1007bb85
mov edx, 0xff
cmp eax, 0xff
mov byte [esi - 2], dl
jg 0x1007bb97
test eax, eax
jge 0x1007bb9c
xor eax, eax
jmp 0x1007bb9c
mov eax, 0xff
cmp ecx, 0xff
mov byte [esi - 1], al
jg 0x1007bbaf
test ecx, ecx
jge 0x1007bbb4
xor ecx, ecx
jmp 0x1007bbb4
mov ecx, 0xff
mov eax, dword [esp + 0x14]
movzx ebx, byte [eax]
movzx ebp, byte [edi + 1]
mov byte [esi], cl
mov ecx, dword [esp + 0x3c]
movzx ecx, byte [ecx + eax]
mov edx, dword [ebx*4 + 0x10174220]
shl ecx, 0x10
mov eax, ecx
sub eax, dword [ebp*4 + 0x10174620]
lea edx, [edx + ecx + 0x8000]
sub eax, dword [ebx*4 + 0x10174a20]
mov ebx, dword [ebp*4 + 0x10174e20]
add eax, 0x8000
lea ecx, [ebx + ecx + 0x8000]
sar edx, 0x10
sar eax, 0x10
sar ecx, 0x10
cmp edx, 0xff
jg 0x1007bc16
test edx, edx
jge 0x1007bc1b
xor edx, edx
jmp 0x1007bc1b
mov edx, 0xff
cmp eax, 0xff
mov byte [esi + 1], dl
jg 0x1007bc2d
test eax, eax
jge 0x1007bc32
xor eax, eax
jmp 0x1007bc32
mov eax, 0xff
cmp ecx, 0xff
mov byte [esi + 2], al
jg 0x1007bc45
test ecx, ecx
jge 0x1007bc4a
xor ecx, ecx
jmp 0x1007bc4a
mov ecx, 0xff
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
movzx ebx, byte [edx + 1]
movzx ebp, byte [edi + 2]
mov byte [esi + 3], cl
movzx ecx, byte [eax - 1]
mov eax, dword [ebx*4 + 0x10174220]
shl ecx, 0x10
lea edx, [eax + ecx + 0x8000]
mov eax, ecx
sub eax, dword [ebp*4 + 0x10174620]
sar edx, 0x10
sub eax, dword [ebx*4 + 0x10174a20]
mov ebx, dword [ebp*4 + 0x10174e20]
add eax, 0x8000
lea ecx, [ebx + ecx + 0x8000]
sar eax, 0x10
sar ecx, 0x10
cmp edx, 0xff
jg 0x1007bcae
test edx, edx
jge 0x1007bcb3
xor edx, edx
jmp 0x1007bcb3
mov edx, 0xff
cmp eax, 0xff
mov byte [esi + 4], dl
jg 0x1007bcc5
test eax, eax
jge 0x1007bcca
xor eax, eax
jmp 0x1007bcca
mov eax, 0xff
cmp ecx, 0xff
mov byte [esi + 5], al
jg 0x1007bcdd
test ecx, ecx
jge 0x1007bce2
xor ecx, ecx
jmp 0x1007bce2
mov ecx, 0xff
mov edx, dword [esp + 0x14]
movzx ebx, byte [edx + 2]
movzx ebp, byte [edi + 3]
mov byte [esi + 6], cl
mov ecx, dword [esp + 0x34]
movzx ecx, byte [ecx]
mov eax, dword [ebx*4 + 0x10174220]
shl ecx, 0x10
lea edx, [eax + ecx + 0x8000]
mov eax, ecx
sub eax, dword [ebp*4 + 0x10174620]
sar edx, 0x10
sub eax, dword [ebx*4 + 0x10174a20]
mov ebx, dword [ebp*4 + 0x10174e20]
add eax, 0x8000
lea ecx, [ebx + ecx + 0x8000]
sar eax, 0x10
sar ecx, 0x10
cmp edx, 0xff
jg 0x1007bd45
test edx, edx
jge 0x1007bd4a
xor edx, edx
jmp 0x1007bd4a
mov edx, 0xff
cmp eax, 0xff
mov byte [esi + 7], dl
jg 0x1007bd5c
test eax, eax
jge 0x1007bd61
xor eax, eax
jmp 0x1007bd61
mov eax, 0xff
cmp ecx, 0xff
mov byte [esi + 8], al
jg 0x1007bd74
test ecx, ecx
jge 0x1007bd79
xor ecx, ecx
jmp 0x1007bd79
mov ecx, 0xff
mov eax, 4
add dword [esp + 0x14], eax
add dword [esp + 0x34], eax
add edi, eax
mov byte [esi + 9], cl
mov eax, 1
add esi, 0xc
sub dword [esp + 0x60], eax
jne 0x1007bb20
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
add esi, dword [esp + 0x50]
add edx, 8
sub dword [esp + 0x1c], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x2c], esi
jne 0x1007bae0
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x5c]
add edi, 0x18
sub dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
jne 0x1007b970
cmp dword [esp + 0x40], 0
jle 0x1007c057
xor ecx, ecx
push 0x7e
push ecx
lea edx, [esp + 0x23a]
push edx
mov word [esp + 0x23c], cx
call fcn.1013f910
xor eax, eax
push 0x7e
push eax
lea ecx, [esp + 0x1c6]
push ecx
mov word [esp + 0x1c8], ax
call fcn.1013f910
xor edx, edx
push 0x7e
push edx
lea eax, [esp + 0x152]
push eax
mov word [esp + 0x154], dx
call fcn.1013f910
push 0x3f
lea ecx, [esp + 0xd9]
push 0
push ecx
mov byte [esp + 0xe0], 0
call fcn.1013f910
push 0x3f
lea edx, [esp + 0xa5]
push 0
push edx
mov byte [esp + 0xac], 0
call fcn.1013f910
push 0x3f
lea eax, [esp + 0x131]
push 0
push eax
mov byte [esp + 0x138], 0
call fcn.1013f910
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0xb0]
add esp, 0x48
push 0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
push esi
push eax
lea ecx, [esp + 0x244]
push ecx
mov ecx, ebp
call fcn.10078f80
mov ecx, dword [esp + 0x6a]
push 1
lea edx, [esp + 0x1c]
push edx
mov word [esp + 0x70], ax
lea eax, [esp + 0x18]
push eax
push esi
push ecx
lea edx, [esp + 0x1c4]
push edx
mov ecx, ebp
call fcn.10078f80
mov edx, dword [esp + 0x6c]
push 2
mov word [esp + 0x6e], ax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
push esi
push edx
lea eax, [esp + 0x144]
push eax
mov ecx, ebp
call fcn.10078f80
mov word [esp + 0x6c], ax
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0x234]
push edx
mov ecx, ebp
call fcn.100787c0
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x1b4]
push ecx
mov ecx, ebp
call fcn.100787c0
lea edx, [esp + 0xf0]
push edx
lea eax, [esp + 0x134]
push eax
mov ecx, ebp
call fcn.100787c0
add edi, 2
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], 8
cmp dword [esp + 0x40], 0
jle 0x1007c03f
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
lea esi, [esp + eax + 0x70]
mov edx, eax
sub edx, esi
sub eax, esi
mov dword [esp + 0x20], ecx
lea ecx, [esp + edx + 0xb0]
lea edx, [esp + eax + 0xf0]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x44]
movzx ebx, byte [edx + esi]
mov ecx, dword [esp + 0x3c]
movzx ecx, byte [ecx + esi]
mov eax, dword [ebx*4 + 0x10174220]
movzx edi, byte [esi]
shl ecx, 0x10
lea edx, [eax + ecx + 0x8000]
mov eax, ecx
sub eax, dword [edi*4 + 0x10174620]
mov edi, dword [edi*4 + 0x10174e20]
sub eax, dword [ebx*4 + 0x10174a20]
lea ecx, [edi + ecx + 0x8000]
add eax, 0x8000
sar edx, 0x10
sar eax, 0x10
sar ecx, 0x10
cmp edx, 0xff
jg 0x1007bff2
test edx, edx
jge 0x1007bff7
xor edx, edx
jmp 0x1007bff7
mov edx, 0xff
cmp eax, 0xff
mov edi, dword [esp + 0x20]
mov byte [edi - 2], dl
jg 0x1007c00d
test eax, eax
jge 0x1007c012
xor eax, eax
jmp 0x1007c012
mov eax, 0xff
cmp ecx, 0xff
mov byte [edi - 1], al
jg 0x1007c025
test ecx, ecx
jge 0x1007c02a
xor ecx, ecx
jmp 0x1007c02a
mov ecx, 0xff
mov byte [edi], cl
add edi, 3
inc esi
sub dword [esp + 0x24], 1
mov dword [esp + 0x20], edi
jne 0x1007bf92
mov ecx, dword [esp + 0x50]
add dword [esp + 0x34], 8
add dword [esp + 0x14], ecx
sub dword [esp + 0x1c], 1
jne 0x1007bf53
mov eax, dword [esp + 0x50]
add eax, eax
add eax, eax
add eax, eax
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
inc eax
cmp eax, dword [esp + 0x48]
mov dword [esp + 0x30], eax
jl 0x1007b952
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x54]
test edi, edi
jle 0x1007c7a9
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
test ecx, ecx
jle 0x1007c520
mov dword [esp + 0x4c], ecx
xor edx, edx
push 0x7e
push edx
lea eax, [esp + 0x23a]
push eax
mov word [esp + 0x23c], dx
call fcn.1013f910
xor ecx, ecx
push 0x7e
push ecx
lea edx, [esp + 0x1c6]
push edx
mov word [esp + 0x1c8], cx
call fcn.1013f910
xor eax, eax
push 0x7e
push eax
lea ecx, [esp + 0x152]
push ecx
mov word [esp + 0x154], ax
call fcn.1013f910
push 0x3f
lea edx, [esp + 0x99]
push 0
push edx
mov byte [esp + 0xa0], 0
call fcn.1013f910
push 0x3f
lea eax, [esp + 0x125]
push 0
push eax
mov byte [esp + 0x12c], 0
call fcn.1013f910
push 0x3f
lea ecx, [esp + 0xf1]
push 0
push ecx
mov byte [esp + 0xf8], 0
call fcn.1013f910
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0xb0]
add esp, 0x48
push 0
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
push esi
push ecx
lea edx, [esp + 0x244]
push edx
mov ecx, ebp
call fcn.10078f80
mov edx, dword [esp + 0x6a]
push 1
mov word [esp + 0x6c], ax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
push esi
push edx
lea eax, [esp + 0x1c4]
push eax
mov ecx, ebp
call fcn.10078f80
push 2
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
mov word [esp + 0x76], ax
mov eax, dword [esp + 0x78]
push esi
push eax
lea ecx, [esp + 0x144]
push ecx
mov ecx, ebp
call fcn.10078f80
mov word [esp + 0x6c], ax
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0x234]
push eax
mov ecx, ebp
call fcn.100787c0
lea ecx, [esp + 0xf0]
push ecx
lea edx, [esp + 0x1b4]
push edx
mov ecx, ebp
call fcn.100787c0
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x134]
push ecx
mov ecx, ebp
call fcn.100787c0
cmp dword [esp + 0x54], 0
jle 0x1007c506
mov eax, dword [esp + 0x54]
lea esi, [ebx + 2]
xor edx, edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
lea ebx, [ebx]
lea eax, [esp + edx + 0x70]
lea ecx, [eax + 3]
mov dword [esp + 0x28], ecx
lea ecx, [esp + edx + 0xb0]
lea edi, [ecx + 1]
mov dword [esp + 0x14], edi
lea edi, [esp + edx + 0xf0]
mov edx, eax
mov ebp, ecx
sub edx, edi
sub ebp, edi
sub eax, ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], 2
jmp 0x1007c268
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x3c]
movzx ecx, byte [edx + edi]
movzx ebx, byte [edi]
movzx ebp, byte [edi + ebp]
mov edx, dword [ebp*4 + 0x10174220]
shl ecx, 0x10
mov eax, ecx
sub eax, dword [ebx*4 + 0x10174620]
mov ebx, dword [ebx*4 + 0x10174e20]
sub eax, dword [ebp*4 + 0x10174a20]
lea edx, [edx + ecx + 0x8000]
add eax, 0x8000
lea ecx, [ebx + ecx + 0x8000]
sar edx, 0x10
sar eax, 0x10
sar ecx, 0x10
cmp edx, 0xff
jg 0x1007c2c0
test edx, edx
jge 0x1007c2c5
xor edx, edx
jmp 0x1007c2c5
mov edx, 0xff
cmp eax, 0xff
mov byte [esi - 2], dl
jg 0x1007c2d7
test eax, eax
jge 0x1007c2dc
xor eax, eax
jmp 0x1007c2dc
mov eax, 0xff
cmp ecx, 0xff
mov byte [esi - 1], al
jg 0x1007c2ef
test ecx, ecx
jge 0x1007c2f4
xor ecx, ecx
jmp 0x1007c2f4
mov ecx, 0xff
mov eax, dword [esp + 0x14]
movzx ebp, byte [eax]
movzx ebx, byte [edi + 1]
mov byte [esi], cl
mov ecx, dword [esp + 0x44]
movzx ecx, byte [eax + ecx]
mov edx, dword [ebp*4 + 0x10174220]
shl ecx, 0x10
mov eax, ecx
sub eax, dword [ebx*4 + 0x10174620]
mov ebx, dword [ebx*4 + 0x10174e20]
sub eax, dword [ebp*4 + 0x10174a20]
lea edx, [edx + ecx + 0x8000]
add eax, 0x8000
lea ecx, [ebx + ecx + 0x8000]
sar edx, 0x10
sar eax, 0x10
sar ecx, 0x10
cmp edx, 0xff
jg 0x1007c356
test edx, edx
jge 0x1007c35b
xor edx, edx
jmp 0x1007c35b
mov edx, 0xff
cmp eax, 0xff
mov byte [esi + 1], dl
jg 0x1007c36d
test eax, eax
jge 0x1007c372
xor eax, eax
jmp 0x1007c372
mov eax, 0xff
cmp ecx, 0xff
mov byte [esi + 2], al
jg 0x1007c385
test ecx, ecx
jge 0x1007c38a
xor ecx, ecx
jmp 0x1007c38a
mov ecx, 0xff
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
movzx ebp, byte [edx + 1]
movzx ebx, byte [edi + 2]
mov byte [esi + 3], cl
movzx ecx, byte [eax - 1]
mov eax, dword [ebp*4 + 0x10174220]
shl ecx, 0x10
lea edx, [eax + ecx + 0x8000]
mov eax, ecx
sub eax, dword [ebx*4 + 0x10174620]
mov ebx, dword [ebx*4 + 0x10174e20]
sub eax, dword [ebp*4 + 0x10174a20]
lea ecx, [ebx + ecx + 0x8000]
add eax, 0x8000
sar edx, 0x10
sar eax, 0x10
sar ecx, 0x10
cmp edx, 0xff
jg 0x1007c3ee
test edx, edx
jge 0x1007c3f3
xor edx, edx
jmp 0x1007c3f3
mov edx, 0xff
cmp eax, 0xff
mov byte [esi + 4], dl
jg 0x1007c405
test eax, eax
jge 0x1007c40a
xor eax, eax
jmp 0x1007c40a
mov eax, 0xff
cmp ecx, 0xff
mov byte [esi + 5], al
jg 0x1007c41d
test ecx, ecx
jge 0x1007c422
xor ecx, ecx
jmp 0x1007c422
mov ecx, 0xff
mov edx, dword [esp + 0x14]
movzx ebp, byte [edx + 2]
movzx ebx, byte [edi + 3]
mov byte [esi + 6], cl
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx]
mov eax, dword [ebp*4 + 0x10174220]
shl ecx, 0x10
lea edx, [eax + ecx + 0x8000]
mov eax, ecx
sub eax, dword [ebx*4 + 0x10174620]
mov ebx, dword [ebx*4 + 0x10174e20]
sub eax, dword [ebp*4 + 0x10174a20]
lea ecx, [ebx + ecx + 0x8000]
add eax, 0x8000
sar edx, 0x10
sar eax, 0x10
sar ecx, 0x10
cmp edx, 0xff
jg 0x1007c485
test edx, edx
jge 0x1007c48a
xor edx, edx
jmp 0x1007c48a
mov edx, 0xff
cmp eax, 0xff
mov byte [esi + 7], dl
jg 0x1007c49c
test eax, eax
jge 0x1007c4a1
xor eax, eax
jmp 0x1007c4a1
mov eax, 0xff
cmp ecx, 0xff
mov byte [esi + 8], al
jg 0x1007c4b4
test ecx, ecx
jge 0x1007c4b9
xor ecx, ecx
jmp 0x1007c4b9
mov ecx, 0xff
mov eax, 4
add dword [esp + 0x14], eax
add dword [esp + 0x28], eax
add edi, eax
mov byte [esi + 9], cl
mov eax, 1
add esi, 0xc
sub dword [esp + 0x30], eax
jne 0x1007c260
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
add esi, dword [esp + 0x50]
add edx, 8
sub dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
jne 0x1007c220
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x5c]
add ebx, 0x18
sub dword [esp + 0x4c], 1
mov dword [esp + 0x2c], ebx
jne 0x1007c0a0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x54]
cmp dword [esp + 0x40], 0
jle 0x1007c7a9
xor ecx, ecx
push 0x7e
push ecx
lea edx, [esp + 0x23a]
push edx
mov word [esp + 0x23c], cx
call fcn.1013f910
xor eax, eax
push 0x7e
push eax
lea ecx, [esp + 0x1c6]
push ecx
mov word [esp + 0x1c8], ax
call fcn.1013f910
xor edx, edx
push 0x7e
push edx
lea eax, [esp + 0x152]
push eax
mov word [esp + 0x154], dx
call fcn.1013f910
push 0x3f
lea ecx, [esp + 0xd9]
push 0
push ecx
mov byte [esp + 0xe0], 0
call fcn.1013f910
push 0x3f
lea edx, [esp + 0xa5]
push 0
push edx
mov byte [esp + 0xac], 0
call fcn.1013f910
push 0x3f
lea eax, [esp + 0x131]
push 0
push eax
mov byte [esp + 0x138], 0
call fcn.1013f910
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0xb0]
add esp, 0x48
push 0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
push esi
push eax
lea ecx, [esp + 0x244]
push ecx
mov ecx, ebp
call fcn.10078f80
mov ecx, dword [esp + 0x6a]
push 1
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
push esi
push ecx
lea edx, [esp + 0x1c4]
push edx
mov ecx, ebp
call fcn.10078f80
mov edx, dword [esp + 0x6c]
push 2
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
push esi
push edx
lea eax, [esp + 0x144]
push eax
mov ecx, ebp
call fcn.10078f80
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0x234]
push edx
mov ecx, ebp
call fcn.100787c0
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x1b4]
push ecx
mov ecx, ebp
call fcn.100787c0
lea edx, [esp + 0xf0]
push edx
lea eax, [esp + 0x134]
push eax
mov ecx, ebp
call fcn.100787c0
test edi, edi
jle 0x1007c7a3
add ebx, 2
xor eax, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], edi
nop
cmp dword [esp + 0x40], 0
jle 0x1007c785
lea esi, [esp + eax + 0x70]
mov ecx, eax
sub ecx, esi
lea edx, [esp + ecx + 0xb0]
mov ecx, dword [esp + 0x40]
sub eax, esi
lea eax, [esp + eax + 0xf0]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], ecx
jmp 0x1007c6d0
mov edx, dword [esp + 0x48]
movzx ecx, byte [esi + edx]
mov eax, dword [esp + 0x3c]
movzx ebx, byte [esi + eax]
movzx edi, byte [esi]
mov edx, dword [ebx*4 + 0x10174220]
shl ecx, 0x10
mov eax, ecx
sub eax, dword [edi*4 + 0x10174620]
mov edi, dword [edi*4 + 0x10174e20]
sub eax, dword [ebx*4 + 0x10174a20]
lea edx, [edx + ecx + 0x8000]
add eax, 0x8000
lea ecx, [edi + ecx + 0x8000]
sar edx, 0x10
sar eax, 0x10
sar ecx, 0x10
cmp edx, 0xff
jg 0x1007c730
test edx, edx
jge 0x1007c735
xor edx, edx
jmp 0x1007c735
mov edx, 0xff
cmp eax, 0xff
mov edi, dword [esp + 0x30]
mov byte [edi - 2], dl
jg 0x1007c74b
test eax, eax
jge 0x1007c750
xor eax, eax
jmp 0x1007c750
mov eax, 0xff
cmp ecx, 0xff
mov byte [edi - 1], al
jg 0x1007c763
test ecx, ecx
jge 0x1007c768
xor ecx, ecx
jmp 0x1007c768
mov ecx, 0xff
mov byte [edi], cl
add edi, 3
inc esi
sub dword [esp + 0x20], 1
mov dword [esp + 0x30], edi
jne 0x1007c6d0
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x50]
add eax, 8
sub dword [esp + 0x2c], 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ebx
jne 0x1007c690
mov eax, dword [esp + 0x10]
jmp 0x1007c7ad
mov esi, dword [esp + 0x38]
cmp dword [esp + 0x18], 7
je 0x1007c7b5
inc eax
lea ecx, [eax + 2]
cmp ecx, dword [ebp + 0x2c0]
jge 0x1007c7e5
cmp byte [esi + eax], 0
jne 0x1007c7ce
cmp byte [esi + eax - 1], 0xff
jne 0x1007c7ce
inc eax
cmp byte [esi + eax], 0xff
jne 0x1007c7e5
mov cl, byte [esi + eax + 1]
cmp cl, 0xd0
jb 0x1007c7e5
cmp cl, 0xd7
ja 0x1007c7e5
add eax, 2
mov ecx, dword [esp + 0x2b0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1013d581
add esp, 0x2a4
ret 8