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

Disassembly:
mov eax, 0x1940
call fcn.1003d710
mov dl, byte [0x10064414]
push ebx
push ebp
push esi
push edi
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x1a1]
mov byte [esp + 0x1a0], dl
mov byte [esp + 0x2d8], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x2d9]
xor ebx, ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor ecx, ecx
mov byte [esp + 0x43c], bl
stosb byte es:[edi], al
xor eax, eax
mov dword [esp + 0x6d], ecx
mov dword [esp + 0x79], eax
mov dword [esp + 0x71], ecx
mov dword [esp + 0x7d], eax
mov word [esp + 0x75], cx
mov word [esp + 0x81], ax
mov byte [esp + 0x77], cl
mov dword [esp + 0x61], ecx
mov byte [esp + 0x83], al
mov dword [esp + 0x3d], eax
mov dword [esp + 0x65], ecx
mov dword [esp + 0x41], eax
mov word [esp + 0x69], cx
mov word [esp + 0x45], ax
mov byte [esp + 0x6b], cl
mov ecx, 0xf
lea edi, [esp + 0x43d]
mov byte [esp + 0x47], al
mov byte [esp + 0x520], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x1f
xor eax, eax
lea edi, [esp + 0x521]
mov byte [esp + 0x620], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x1f
xor eax, eax
lea edi, [esp + 0x621]
mov byte [esp + 0x78], dl
rep stosd dword es:[edi], eax
mov byte [esp + 0x6c], dl
xor edx, edx
stosw word es:[edi], ax
mov dword [esp + 0x55], edx
mov ecx, 0x1f
mov dword [esp + 0x59], edx
mov byte [esp + 0x5a0], bl
stosb byte es:[edi], al
mov word [esp + 0x5d], dx
xor eax, eax
lea edi, [esp + 0x5a1]
mov byte [esp + 0x5f], dl
rep stosd dword es:[edi], eax
mov dword [esp + 0x49], edx
mov byte [esp + 0x54], bl
mov dword [esp + 0x4d], edx
mov byte [esp + 0x3c], bl
mov word [esp + 0x51], dx
mov byte [esp + 0x60], bl
mov byte [esp + 0x48], bl
mov byte [esp + 0x53], dl
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xfe
xor eax, eax
lea edi, [esp + 0x116d]
mov byte [esp + 0x116c], bl
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0x91], eax
mov dword [esp + 0xdd], ecx
mov dword [esp + 0x95], eax
mov dword [esp + 0xe1], ecx
mov dword [esp + 0x99], eax
mov dword [esp + 0xe5], ecx
mov dword [esp + 0x9d], eax
mov word [esp + 0xe9], cx
mov word [esp + 0xa1], ax
mov byte [esp + 0xeb], cl
mov ecx, 0x1f
lea edi, [esp + 0x721]
mov byte [esp + 0xa3], al
mov byte [esp + 0x720], bl
mov byte [esp + 0x6a0], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x1f
xor eax, eax
lea edi, [esp + 0x6a1]
mov byte [esp + 0x338], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x339]
mov byte [esp + 0x390], bl
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x391]
mov byte [esp + 0x364], bl
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x365]
mov byte [esp + 0x49c], bl
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x49d]
mov byte [esp + 0x7a0], bl
rep stosd dword es:[edi], eax
mov ecx, 0x7e
lea edi, [esp + 0x7a1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov dword [esp + 0xb1], edx
mov dword [esp + 0xc1], eax
mov dword [esp + 0xb5], edx
mov dword [esp + 0xc5], eax
mov dword [esp + 0xb9], edx
mov dword [esp + 0xc9], eax
xor ecx, ecx
mov word [esp + 0xbd], dx
mov word [esp + 0xcd], ax
mov dword [esp + 0x25], ecx
mov byte [esp + 0x90], bl
mov byte [esp + 0xdc], bl
mov byte [esp + 0xb0], bl
mov byte [esp + 0xbf], dl
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xc0], bl
mov byte [esp + 0xcf], al
mov byte [esp + 0x24], bl
mov byte [esp + 0x29], cl
mov byte [esp + 0x3dc], bl
mov ecx, 0xf
lea edi, [esp + 0x3dd]
rep stosd dword es:[edi], eax
mov ebp, dword [esp + 0x1954]
mov dword [esp + 0x30], ebx
stosw word es:[edi], ax
cmp ebp, ebx
mov dword [esp + 0x2c], ebx
stosb byte es:[edi], al
je 0x10015d3c
mov edx, dword [0x10071a48]
mov eax, dword [ebp + 0x54]
push edx
push eax
call fcn.10012130
mov esi, eax
add esp, 8
cmp esi, ebx
mov dword [esp + 0x10], esi
jne 0x10015d0c
pop edi
pop esi
pop ebp
mov ax, 2
pop ebx
add esp, 0x1940
ret 0x20
cmp dword [esp + 0x1964], ebx
je 0x10015d3c
mov eax, dword [esp + 0x1968]
cmp eax, 0x110
je 0x10015d2a
cmp eax, 0x118
jne 0x10015d3c
cmp dword [esp + 0x1958], ebx
je 0x10015d4d
cmp dword [esp + 0x195c], ebx
ja 0x10015d6e
mov ax, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x20
mov cx, word [esi + 0x44]
cmp cx, bx
je 0x10015d5d
cmp cx, 0xffff
jne 0x10015d6e
pop edi
pop esi
pop ebp
mov ax, 0x47
pop ebx
add esp, 0x1940
ret 0x20
sub eax, 0x118
mov ecx, 0x10
neg eax
sbb eax, eax
lea edi, [esp + 0x2f8]
and al, 0xf6
push 0x40
add eax, 0x2c6
mov dword [esp + 0xb0], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, 0x46
lea edi, [esp + 0x1c4]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x2fc]
push eax
push ebp
call fcn.10009f00
cmp ax, bx
jne 0x10015d40
cmp dword [esp + 0x1958], 0xffffffff
jne 0x10015dcd
mov dword [esp + 0x1958], 0xffff
xor eax, eax
xor ecx, ecx
mov dword [esp + 0xec], eax
xor edx, edx
mov dword [esp + 0xf0], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0xd0], edx
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x1958]
mov dword [esp + 0x88], ecx
mov dword [esp + 0xd4], edx
cmp eax, ebx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0xd8], edx
jne 0x10015e56
movsx ecx, word [esi + 0x70]
mov ebp, dword [sym.imp.MSVCR100.dll_sprintf]
lea eax, [esp + 0x84]
mov edx, dword [esi + ecx*4 + 0x48]
push edx
push 0x1005f734
push eax
call ebp
xor ecx, ecx
lea edx, [esp + 0xdc]
mov cx, word [esi + 0x44]
push ecx
push 0x1005f734
push edx
call ebp
add esp, 0x18
jmp 0x10015e7d
mov ebp, dword [sym.imp.MSVCR100.dll_sprintf]
lea eax, [esp + 0x84]
push 0x1005f7a4
push eax
call ebp
lea ecx, [esp + 0xd8]
push 0x1005f7a4
push ecx
call ebp
add esp, 0x10
lea edi, [esp + 0x2f8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1c0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x1568], bl
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0xf8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov byte [esp + 0xf8], bl
and ecx, 3
mov byte [esp + 0x11c], bl
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1958]
push ecx
push 0x1005f734
push edx
call ebp
mov eax, dword [esp + 0x1968]
lea ecx, [esp + 0x128]
push eax
push 0x1005f734
push ecx
call ebp
mov edx, dword [esp + 0x1978]
lea eax, [esp + 0x104]
push edx
push 0x1005f734
push eax
call ebp
mov eax, dword [esp + 0x1994]
add esp, 0x24
cmp eax, 0x400
ja 0x10016a24
cmp eax, ebx
jne 0x10015fb4
push ebx
lea ecx, [esp + 0x64]
push 0x1005f734
push ecx
call ebp
push ebx
lea edx, [esp + 0x58]
push 0x1005f734
push edx
call ebp
push ebx
lea eax, [esp + 0x1a4]
push 0x1005f734
push eax
call ebp
push ebx
lea ecx, [esp + 0x464]
push 0x1005f734
push ecx
call ebp
push ebx
lea edx, [esp + 0x554]
push 0x1005f734
push edx
call ebp
push ebx
lea eax, [esp + 0x660]
push 0x1005f734
push eax
call ebp
add esp, 0x48
lea ecx, [esp + 0x5a0]
push ebx
push 0x1005f734
push ecx
call ebp
push ebx
lea edx, [esp + 0xa0]
push 0x1005f734
push edx
call ebp
push ebx
lea eax, [esp + 0x1188]
push 0x1005f734
push eax
call ebp
add esp, 0x24
jmp 0x10016170
mov eax, dword [esp + 0x10]
lea edi, [esp + 0x338]
mov cl, byte [eax + 0x69d]
lea esi, [eax + 0x5f0]
mov byte [esp + 0x15], cl
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea esi, [eax + 0xca4]
mov ecx, 0xa
lea edi, [esp + 0x390]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea esi, [eax + 0xcce]
mov ecx, 0xa
lea edi, [esp + 0x364]
add eax, 0xaa8
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dl, byte [eax - 0x40d]
mov cl, byte [eax - 0x40c]
mov byte [esp + 0x16], dl
lea edx, [esp + 0x1c]
mov byte [esp + 0x17], cl
mov dword [esp + 0x1c], 0x1fc
push edx
mov edx, dword [eax - 4]
lea ecx, [esp + 0x7a4]
push ecx
push edx
push eax
call fcn.10010670
mov eax, dword [esp + 0x20]
mov ecx, 0x20
lea edi, [esp + 0x4ac]
lea edx, [esp + 0x70]
lea esi, [eax + 0x61a]
rep movsd dword es:[edi], dword [esi]
movsx ecx, byte [esp + 0x25]
push ecx
push 0x1005f734
push edx
movsb byte es:[edi], byte [esi]
call ebp
movsx eax, byte [esp + 0x32]
push eax
lea ecx, [esp + 0x68]
push 0x1005f734
push ecx
call ebp
movsx edx, byte [esp + 0x3f]
push edx
lea eax, [esp + 0x1b4]
push 0x1005f734
push eax
call ebp
lea edi, [esp + 0x4d0]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x34
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x100160e7
lea ecx, [esp + 0xc0]
push 0x10
push ecx
lea edi, [esp + 0x4a4]
or ecx, 0xffffffff
lea edx, [esp + 0x4a4]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
call fcn.1001af30
lea eax, [esp + 0x44c]
lea ecx, [esp + 0xd0]
push eax
push 0x10
push ecx
call fcn.100069f0
add esp, 0x1c
jmp 0x100160fa
push ebx
lea edx, [esp + 0x440]
push 0x1005f734
push edx
call ebp
add esp, 0xc
lea eax, [esp + 0x520]
lea ecx, [esp + 0x338]
push eax
push 0x2a
push ecx
call fcn.100069f0
lea edx, [esp + 0x62c]
lea eax, [esp + 0x39c]
push edx
push 0x2a
push eax
call fcn.100069f0
lea ecx, [esp + 0x5b8]
lea edx, [esp + 0x37c]
push ecx
push 0x2a
push edx
call fcn.100069f0
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0xb4]
push eax
push 0x1005f734
push ecx
call ebp
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x119c]
push edx
lea ecx, [esp + 0x7d4]
push eax
push ecx
call fcn.100069f0
add esp, 0x3c
lea edx, [esp + 0x116c]
lea eax, [esp + 0x90]
push edx
lea ecx, [esp + 0x5a4]
push eax
lea edx, [esp + 0x628]
push ecx
lea eax, [esp + 0x52c]
push edx
lea ecx, [esp + 0x44c]
push eax
lea edx, [esp + 0x19c]
push ecx
lea eax, [esp + 0x60]
push edx
lea ecx, [esp + 0x7c]
push eax
lea edx, [esp + 0x10c]
push ecx
lea eax, [esp + 0x140]
push edx
lea ecx, [esp + 0x120]
push eax
lea edx, [esp + 0xfc]
push ecx
lea eax, [esp + 0xb4]
push edx
push eax
push 0xe
push 0x1005f72c
call fcn.10019ee0
lea ecx, [esp + 0x15a8]
mov ebp, eax
push ecx
push ebp
push str.keyInfoEx2
push 3
push 0x1005f61c
call fcn.10019ee0
add esp, 0x54
cmp eax, ebx
mov dword [esp + 0x18], eax
jne 0x10016229
mov edx, dword [esp + 0x10]
push edx
push 0x4a
call fcn.1000a580
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x20
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xd84]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov eax, ecx
mov esi, edi
mov edi, edx
mov ebp, dword [sym.imp.MSVCR100.dll_free]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call ebp
mov ecx, dword [esp + 0x1c]
push ecx
call ebp
lea edx, [esp + 0xd8c]
push edx
call fcn.10019fc0
mov edx, eax
add esp, 0xc
cmp edx, ebx
jne 0x10016291
mov eax, dword [esp + 0x10]
push eax
push 0x4a
call fcn.1000a580
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x20
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0xd84]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
push edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call ebp
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x9a0]
push ecx
lea edx, [esp + 0xd8c]
push edi
push edx
mov byte [esp + 0x9ac], bl
call fcn.10017cc0
add esp, 0x10
cmp ax, bx
je 0x10016300
push edi
push eax
call fcn.1000a4a0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x20
lea eax, [esp + 0x99c]
push eax
call fcn.10019cc0
mov esi, eax
add esp, 4
cmp esi, ebx
jne 0x1001632e
push edi
push 0x42
call fcn.1000a580
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x20
lea ecx, [esp + 0x99c]
lea edx, [esp + 0x3bc]
push ecx
lea eax, [esp + 0x420]
push edx
push eax
push esi
push 3
push 0x1005f61c
call fcn.10019b20
push esi
mov edi, eax
call ebp
add esp, 0x1c
cmp di, bx
je 0x1001637c
mov ecx, dword [esp + 0x10]
push ecx
push 0x42
call fcn.1000a580
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x20
mov byte [esp + 0x43b], bl
mov byte [esp + 0x3db], bl
mov ebp, str.error
lea esi, [esp + 0x41c]
mov dl, byte [esi]
mov cl, byte [ebp]
mov al, dl
cmp dl, cl
jne 0x100163bf
cmp al, bl
je 0x100163bb
mov cl, byte [esi + 1]
mov dl, byte [ebp + 1]
mov al, cl
cmp cl, dl
jne 0x100163bf
add esi, 2
add ebp, 2
cmp al, bl
jne 0x10016396
xor eax, eax
jmp 0x100163c4
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x100163f1
lea edx, [esp + 0x3bc]
push edx
call dword [sym.imp.MSVCR100.dll_atoi]
mov ecx, dword [esp + 0x14]
push ecx
push eax
call fcn.1000a580
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x20
lea edx, [esp + 0x6a0]
lea eax, [esp + 0xb0]
push edx
lea ecx, [esp + 0x724]
push eax
lea edx, [esp + 0xe4]
push ecx
lea eax, [esp + 0x48]
push edx
lea ecx, [esp + 0x64]
push eax
lea edx, [esp + 0x124]
push ecx
lea eax, [esp + 0x170]
push edx
lea ecx, [esp + 0x18c]
push eax
lea edx, [esp + 0x1b4]
push ecx
lea eax, [esp + 0x164]
push edx
lea ecx, [esp + 0x12c]
push eax
lea edx, [esp + 0x154]
push ecx
lea eax, [esp + 0x1ac]
push edx
lea ecx, [esp + 0x198]
push eax
lea edx, [esp + 0x184]
push ecx
lea eax, [esp + 0x170]
push edx
lea ecx, [esp + 0x138]
push eax
lea edx, [esp + 0xb0]
push ecx
lea eax, [esp + 0xc0]
push edx
lea ecx, [esp + 0x324]
push eax
lea edx, [esp + 0x1f0]
push ecx
lea eax, [esp + 0x9f0]
push edx
push eax
push 0x16
push 0x1005f72c
call fcn.10019b20
add esp, 0x64
test eax, eax
je 0x100164d2
mov ecx, dword [esp + 0x10]
push ecx
push 0x42
call fcn.1000a580
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x20
mov edx, dword [esp + 0x10]
mov byte [esp + 0x133], bl
mov byte [esp + 0x10f], bl
mov byte [esp + 0x14b], bl
mov byte [esp + 0x19f], bl
mov byte [esp + 0x13f], bl
mov byte [esp + 0x157], bl
mov byte [esp + 0x16f], bl
mov byte [esp + 0x187], bl
mov byte [esp + 0x17b], bl
mov byte [esp + 0x163], bl
mov byte [esp + 0x11b], bl
mov byte [esp + 0x5f], bl
mov byte [esp + 0x47], bl
cmp word [edx + 0x8c], 1
jne 0x100165df
mov esi, dword [sym.imp.MSVCR100.dll__stricmp]
lea eax, [esp + 0x2f8]
push str.127.0.0.1
push eax
call esi
add esp, 8
test eax, eax
je 0x100165df
lea ecx, [esp + 0x2f8]
push str.RNBO_SPN_LOCAL
push ecx
call esi
add esp, 8
test eax, eax
je 0x100165df
lea edx, [esp + 0x2f8]
push edx
call fcn.100061c0
add esp, 4
test eax, eax
je 0x100165df
lea eax, [esp + 0x1a0]
push str.127.0.0.1
push eax
call esi
add esp, 8
test eax, eax
jne 0x100165df
lea ecx, [esp + 0x47c]
push ebx
lea edx, [esp + 0x2fc]
push ecx
push edx
call fcn.10006480
add esp, 0xc
test eax, eax
jne 0x100165df
lea edi, [esp + 0x47c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x1a0]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1a0]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x200]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x240]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x2d8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x260]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x78]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.MSVCR100.dll_atoi]
lea ecx, [esp + 0x6c]
push ecx
call esi
lea edx, [esp + 0xfc]
mov dword [esp + 0x2a4], eax
push edx
call esi
mov dword [esp + 0x2b0], eax
lea eax, [esp + 0x13c]
push eax
call esi
lea ecx, [esp + 0x158]
mov dword [esp + 0x2b8], eax
push ecx
call esi
lea edx, [esp + 0x174]
mov edi, eax
push edx
call esi
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x190]
push eax
call esi
lea ecx, [esp + 0x140]
mov dword [esp + 0xbc], eax
push ecx
call esi
lea edx, [esp + 0x120]
mov dword [esp + 0x2d0], eax
push edx
call esi
mov dword [esp + 0x2d8], eax
lea eax, [esp + 0x160]
push eax
call esi
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x2e0], eax
push ecx
call esi
lea edx, [esp + 0x180]
mov dword [esp + 0x2e8], eax
push edx
call esi
mov dword [esp + 0x2f4], eax
lea eax, [esp + 0x19c]
push eax
call esi
lea ecx, [esp + 0x140]
mov dword [esp + 0x2f4], eax
push ecx
call esi
lea edx, [esp + 0x88]
mov dword [esp + 0x54], eax
push edx
call esi
mov dword [esp + 0xe0], eax
lea eax, [esp + 0x74]
push eax
call esi
add esp, 0x3c
cmp edi, 8
mov dword [esp + 0x34], eax
mov byte [esp + 0x38], bl
jne 0x1001675f
mov byte [esp + 0x38], 1
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x10]
mov edx, ecx
shr edx, 0x10
test dl, dl
jne 0x100167d6
mov edx, dword [ebp + 0x1dc]
cmp edx, dword [esp + 0x2a8]
jne 0x100167d6
lea eax, [esp + 0x24]
lea ecx, [esp + 0xdc]
push eax
push ecx
call fcn.10006a80
lea edx, [esp + 0x3e4]
lea eax, [esp + 0x728]
push edx
push eax
call fcn.10006a80
add esp, 0x10
lea ecx, [esp + 0x30]
lea edx, [esp + 0x24]
lea eax, [esp + 0x3dc]
push ecx
push esi
push edx
lea ecx, [ebp + 0x1e0]
push eax
push ecx
call fcn.10010540
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
jmp 0x100167de
mov dword [esp + 0x30], 0xff
mov edx, ecx
shr edx, 8
test dl, dl
jne 0x10016849
mov edx, dword [esp + 0x2a8]
cmp dword [ebp + 0x1dc], edx
jne 0x10016849
lea eax, [esp + 0x24]
lea ecx, [esp + 0xb0]
push eax
push ecx
call fcn.10006a80
lea edx, [esp + 0x3e4]
lea eax, [esp + 0x6a8]
push edx
push eax
call fcn.10006a80
add esp, 0x10
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x24]
lea eax, [esp + 0x3dc]
push ecx
push esi
push edx
lea ecx, [ebp + 0x1e0]
push eax
push ecx
call fcn.10010540
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
jmp 0x10016851
mov dword [esp + 0x2c], 0xff
mov dl, byte [esp + 0x2c]
cmp cl, 2
mov byte [esp + 0x2cc], dl
mov dl, byte [esp + 0x30]
mov byte [esp + 0x2cd], dl
mov byte [esp + 0x2ce], cl
jne 0x1001687f
shr ecx, 0x18
mov byte [esp + 0x2cf], cl
jmp 0x10016886
mov byte [esp + 0x2cf], bl
xor ecx, ecx
cmp edi, 5
mov dword [esp + 0x2b0], ecx
je 0x100168a0
cmp edi, 7
je 0x100168a0
cmp edi, 8
jne 0x100168df
jmp 0x100168b1
cmp edi, 8
je 0x100168b1
mov ecx, 8
mov dword [esp + 0x2b0], ecx
mov edx, dword [esp + 0x18]
test dh, 0x40
je 0x100168c4
or ecx, 5
mov dword [esp + 0x2b0], ecx
test dh, 0x20
je 0x100168e3
test byte [esp + 0xa4], 0x10
je 0x100168e3
or ecx, 2
mov dword [esp + 0x2b0], ecx
jmp 0x100168e3
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x1958], ebx
jne 0x100168fe
mov dword [ebp + 0x1cc], edi
mov dword [ebp + 0x1d4], edx
mov dword [ebp + 0x1d0], ecx
cmp dword [esp + 0xac], 0x2c6
jl 0x100169c8
mov cl, byte [esp + 0x20]
mov word [esp + 0x2d0], bx
cmp cl, 2
mov byte [esp + 0x2d2], bl
mov byte [esp + 0x2d3], bl
mov word [esp + 0x2d4], bx
mov byte [esp + 0x2d6], bl
mov byte [esp + 0x2d7], bl
jne 0x100169c8
mov ecx, dword [esp + 0xa8]
cmp cx, bx
je 0x100169c8
mov edx, dword [esp + 0x2a8]
mov esi, dword [ebp + 0x1dc]
cmp esi, edx
jne 0x100169c8
mov dx, cx
shr dx, 9
add edx, 0x7d0
mov word [esp + 0x2d0], dx
mov edx, ecx
shr edx, 5
and dl, 0xf
and cl, 0x1f
inc dl
inc cl
mov byte [esp + 0x2d2], dl
mov byte [esp + 0x2d3], cl
mov edx, eax
mov cx, ax
shr edx, 5
shr cx, 9
and dl, 0xf
add ecx, 0x7d0
and al, 0x1f
inc dl
inc al
mov word [esp + 0x2d4], cx
mov byte [esp + 0x2d6], dl
mov byte [esp + 0x2d7], al
mov ecx, dword [esp + 0x1968]
mov edi, dword [esp + 0x1964]
mov eax, ecx
lea esi, [esp + 0x1c0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x2a8]
and ecx, 3
cmp eax, ebx
rep movsb byte es:[edi], byte [esi]
push ebp
jne 0x10016a0e
push 3
call fcn.1000a580
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x20
push ebx
call fcn.1000a580
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1940
ret 0x20
pop edi
pop esi
pop ebp
mov ax, 0x4a
pop ebx
add esp, 0x1940
ret 0x20