Function at 0x100222b0
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100fcac1
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x218c
call fcn.1003d460
mov eax, dword [0x1013f030]
xor eax, esp
mov dword [esp + 0x2188], eax
push ebx
push esi
push edi
mov eax, dword [0x1013f030]
xor eax, esp
push eax
lea eax, [esp + 0x21a0]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x14]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
mov esi, edx
mov eax, vtable.ProtocolFilters::IOB.0
mov ecx, 0x6400000
mov edi, 1
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edi
mov dword [esp + 0x21a8], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edi
mov byte [esp + 0x21a8], 1
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
push 2
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
cmp dword [esi + 0xf4], edi
jne 0x100223bc
cmp dword [esi + 0xf8], ebx
jle 0x100223bc
mov eax, dword [esi]
cmp eax, 3
je 0x100223bc
cmp eax, 4
je 0x100223bc
lea ecx, [esp + 0x20]
mov byte [esp + 0x21a8], bl
call fcn.10013810
lea ecx, [esp + 0x3c]
mov dword [esp + 0x21a8], 0xffffffff
call fcn.10013810
jmp 0x1002305a
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
push ebx
call eax
mov edi, eax
cmp edi, ebx
je 0x100224c0
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
xor esi, esi
mov ecx, edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], esi
call eax
mov ebx, eax
mov dword [esp + 0x38], ebx
cmp ebx, esi
je 0x100224c0
lea esi, [ebx + 1]
cmp esi, 0x6400000
ja 0x100224c0
test esi, esi
jbe 0x1002243d
mov ebx, 0xa
cmp esi, ebx
jb 0x10022420
mov edi, edi
add ebx, ebx
cmp ebx, esi
jbe 0x10022410
cmp ebx, 0x6400000
jb 0x10022420
mov ebx, esi
push ebx
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x100224c0
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], ebx
mov byte [eax + ebx], 0
test eax, eax
je 0x100224c0
mov edx, dword [edi]
mov eax, dword [edx + 8]
push 0
push 0
push 0
mov ecx, edi
call eax
mov edx, dword [edi]
mov eax, dword [esp + 0x40]
mov edx, dword [edx + 0xc]
push ebx
push eax
mov ecx, edi
call edx
cmp esi, 0x6400000
ja 0x100224c0
test esi, esi
jbe 0x100224a5
mov edi, 0xa
cmp esi, edi
jb 0x10022490
add edi, edi
cmp edi, esi
jbe 0x10022480
cmp edi, 0x6400000
jb 0x10022490
mov edi, esi
push edi
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x100224c0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
push ebx
push eax
push esi
call fcn.10037db0
add esp, 0xc
mov dword [esp + 0x28], ebx
mov byte [esi + ebx], 0
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
push 1
call eax
mov edi, eax
xor esi, esi
cmp edi, esi
je 0x10022ad0
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], esi
cmp ebx, esi
je 0x100224fb
push ebx
call fcn.10030c8f
add esp, 4
xor ebx, ebx
mov dword [esp + 0x40], ebx
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
mov ecx, edi
call eax
mov ecx, eax
mov dword [esp + 0x38], ecx
cmp ecx, esi
je 0x1002256f
lea eax, [ecx + 1]
cmp eax, 0x6400000
ja 0x1002256f
cmp eax, esi
jbe 0x10022567
mov esi, 0xa
cmp eax, esi
jb 0x10022535
add esi, esi
cmp esi, eax
jbe 0x10022525
cmp esi, 0x6400000
jb 0x10022535
mov esi, eax
push esi
test ebx, ebx
je 0x10022549
push ebx
call fcn.10032818
add esp, 8
test eax, eax
je 0x1002256f
jmp 0x10022559
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10022ad0
mov ecx, dword [esp + 0x38]
mov ebx, eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ecx
mov byte [ebx + ecx], 0
test ebx, ebx
je 0x10022ad0
lea ecx, [esp + 0xc4]
push ecx
call fcn.1001cb00
push 0
mov byte [esp + 0x21ac], 2
mov edx, dword [edi]
mov eax, dword [edx + 8]
push 0
push 0
mov ecx, edi
call eax
mov esi, dword [esp + 0x44]
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
push esi
push ebx
mov ecx, edi
call eax
push esi
mov esi, ebx
lea ecx, [esp + 0xc8]
call fcn.1001cd80
test al, al
je 0x10022a07
push str.X_EXHDR_REQUEST
lea ecx, [esp + 0x68]
mov byte [esp + 0x1f], 1
call fcn.10008f30
lea edx, [esp + 0x64]
lea ecx, [esp + 0xc4]
mov byte [esp + 0x21a8], 3
call fcn.1001d350
mov edi, 0x10
mov byte [esp + 0x21a8], 2
mov esi, eax
cmp dword [esp + 0x7c], edi
jb 0x1002260e
mov ecx, dword [esp + 0x68]
push ecx
call fcn.10031f94
add esp, 4
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], 0
mov byte [esp + 0x68], 0
test esi, esi
je 0x1002265b
add esi, 0x1c
lea ecx, [esp + 0x80]
call fcn.10009840
push eax
mov edx, str.head
call fcn.1001f8c0
test eax, eax
lea ecx, [esp + 0x80]
sete bl
call fcn.100093d0
test bl, bl
je 0x1002265b
mov byte [esp + 0x1b], 0
push str.X_EXHDR_REQUEST
lea ecx, [esp + 0x68]
call fcn.10008f30
lea edx, [esp + 0xc4]
push edx
lea ecx, [esp + 0x68]
mov byte [esp + 0x21ac], 4
call fcn.1001d180
mov byte [esp + 0x21a8], 2
cmp dword [esp + 0x7c], edi
jb 0x1002269d
mov eax, dword [esp + 0x68]
push eax
call fcn.10031f94
add esp, 4
push str.X_EXHDR_REQUEST_HOST
lea ecx, [esp + 0x68]
call fcn.10008f30
lea ecx, [esp + 0xc4]
push ecx
lea ecx, [esp + 0x68]
mov byte [esp + 0x21ac], 5
call fcn.1001d180
mov byte [esp + 0x21a8], 2
cmp dword [esp + 0x7c], edi
jb 0x100226df
mov edx, dword [esp + 0x68]
push edx
call fcn.10031f94
add esp, 4
mov esi, dword [esp + 0x1c]
mov edi, 1
cmp dword [esi + 0xd4], edi
jne 0x10022755
push str.chunked
lea ecx, [esp + 0x84]
call fcn.10008f30
push str.Transfer_Encoding
lea ecx, [esp + 0x68]
mov byte [esp + 0x21ac], 6
call fcn.10008f30
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0xc8]
push ecx
lea ecx, [esp + 0x6c]
mov byte [esp + 0x21b0], 7
call fcn.1001d010
lea ecx, [esp + 0x64]
call fcn.100093d0
lea ecx, [esp + 0x80]
mov byte [esp + 0x21a8], 2
call fcn.100093d0
cmp byte [esp + 0x1b], 0
je 0x1002279d
push str.Content_Length
lea ecx, [esp + 0x84]
call fcn.10008f30
mov byte [esp + 0x21a8], 8
lea edx, [esp + 0x80]
lea ecx, [esp + 0xc4]
mov dword [esp + 0x14], edi
call fcn.1001d350
test eax, eax
je 0x1002279d
cmp dword [esi + 0xf8], 0
jle 0x1002279d
mov bl, 1
jmp 0x1002279f
xor bl, bl
mov dword [esp + 0x21a8], 2
test byte [esp + 0x14], 1
je 0x100227bd
lea ecx, [esp + 0x80]
call fcn.100093d0
test bl, bl
je 0x1002289c
mov eax, dword [esi + 0xf8]
cdq
sub eax, dword [ebp + 8]
sbb edx, dword [ebp + 0xc]
add eax, dword [esp + 0x54]
adc edx, dword [esp + 0x58]
push edx
push eax
push str._I64u
lea edx, [esp + 0x138]
push 0x64
push edx
call fcn.1003258e
add esp, 0x14
push str.Content_Length
lea ecx, [esp + 0x84]
call fcn.10008f30
lea eax, [esp + 0xc4]
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0x21ac], 9
call fcn.1001d180
lea ecx, [esp + 0x80]
mov byte [esp + 0x21a8], 2
call fcn.100093d0
lea ecx, [esp + 0x12c]
push ecx
lea ecx, [esp + 0x68]
call fcn.10008f30
push str.Content_Length
lea ecx, [esp + 0x84]
mov byte [esp + 0x21ac], 0xa
call fcn.10008f30
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0x88]
mov byte [esp + 0x21b0], 0xb
call fcn.1001d010
lea ecx, [esp + 0x80]
call fcn.100093d0
lea ecx, [esp + 0x64]
mov byte [esp + 0x21a8], 2
call fcn.100093d0
lea ecx, [esp + 0x64]
lea edx, [esp + 0xc4]
call fcn.1001cee0
push eax
mov edi, 0x10138c1c
lea esi, [esp + 0xac]
mov byte [esp + 0x21ac], 0xc
call fcn.10012660
add esp, 4
mov esi, 0x10
mov byte [esp + 0x21a8], 0xe
cmp dword [esp + 0x7c], esi
jb 0x100228e9
mov ecx, dword [esp + 0x68]
push ecx
call fcn.10031f94
add esp, 4
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], 0
mov byte [esp + 0x68], 0
mov dword [esp + 0x38], eax
cmp dword [esp + 0xc0], esi
jb 0x1002297c
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x100229c8
test eax, eax
je 0x100229c8
mov edi, dword [esp + 0x28]
add eax, edi
mov dword [esp + 0x54], eax
inc eax
cmp eax, 0x6400000
ja 0x100229cc
mov esi, dword [esp + 0x2c]
cmp eax, esi
jbe 0x100229a1
test esi, esi
jne 0x10022954
mov esi, 0xa
cmp esi, eax
ja 0x1002295e
add esi, esi
cmp esi, eax
jbe 0x10022958
cmp esi, 0x6400000
jb 0x10022968
mov esi, eax
mov ebx, dword [esp + 0x24]
push esi
test ebx, ebx
je 0x10022989
push ebx
call fcn.10032818
add esp, 8
jmp 0x10022991
lea edx, [esp + 0xac]
mov dword [esp + 0x14], edx
jmp 0x10022925
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x100229d0
mov ebx, eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], ebx
jmp 0x100229a5
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
push eax
push ecx
add edi, ebx
push edi
call fcn.10037db0
mov edi, dword [esp + 0x60]
add esp, 0xc
mov dword [esp + 0x28], edi
mov byte [edi + ebx], 0
jmp 0x100229d0
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0xc0], 0x10
jb 0x10022aba
mov edx, dword [esp + 0xac]
push edx
call fcn.10031f94
add esp, 4
lea ecx, [esp + 0xc4]
mov byte [esp + 0x21a8], 1
call fcn.1001cb60
jmp 0x10022ad8
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
test eax, eax
je 0x10022ab6
lea eax, [edi + eax + 1]
cmp eax, 0x6400000
ja 0x10022ab6
mov esi, dword [esp + 0x2c]
cmp eax, esi
jbe 0x10022a7c
test esi, esi
jne 0x10022a37
mov esi, 0xa
cmp esi, eax
ja 0x10022a46
jmp 0x10022a40
add esi, esi
cmp esi, eax
jbe 0x10022a40
cmp esi, 0x6400000
jb 0x10022a50
mov esi, eax
mov ebx, dword [esp + 0x24]
push esi
test ebx, ebx
je 0x10022a64
push ebx
call fcn.10032818
add esp, 8
jmp 0x10022a6c
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10022aba
mov ebx, eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], ebx
jmp 0x10022a80
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push esi
push eax
lea ecx, [edi + ebx]
push ecx
call fcn.10037db0
add edi, esi
add esp, 0xc
lea ecx, [esp + 0xc4]
mov dword [esp + 0x28], edi
mov byte [edi + ebx], 0
mov byte [esp + 0x21a8], 1
call fcn.1001cb60
jmp 0x10022ad8
mov ebx, dword [esp + 0x24]
lea ecx, [esp + 0xc4]
mov byte [esp + 0x21a8], 1
call fcn.1001cb60
jmp 0x10022ad8
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x1c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
push 2
call edx
mov esi, eax
mov dword [esp + 0x54], esi
test esi, esi
jne 0x10022b0d
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x60]
push edi
push ebx
push eax
push 1
push ecx
mov ecx, dword [esp + 0x70]
call fcn.10017fa0
jmp 0x10023029
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
mov dword [esp + 0x9c], eax
test edx, edx
ja 0x10022b29
test eax, eax
jbe 0x10022fd9
mov edx, dword [esi]
mov eax, dword [edx + 8]
push 0
push 0
push 0
mov ecx, esi
call eax
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push 0x2000
lea eax, [esp + 0x198]
push eax
mov ecx, esi
call edx
mov dword [esp + 0x14], eax
test eax, eax
je 0x10022d4c
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0xd4], 1
jne 0x10022c37
mov ecx, dword [esp + 0x14]
push ecx
push str._x_r_n
lea edx, [esp + 0xcc]
push 0x64
push edx
call fcn.1003258e
lea eax, [esp + 0xd4]
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022b91
sub eax, edx
mov dword [esp + 0x38], eax
je 0x10022c37
lea eax, [edi + eax + 1]
cmp eax, 0x6400000
ja 0x10022c37
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jbe 0x10022c0a
mov esi, ecx
test ecx, ecx
jne 0x10022bc6
mov esi, 0xa
cmp esi, eax
ja 0x10022bd6
lea ebx, [ebx]
add esi, esi
cmp esi, eax
jbe 0x10022bd0
cmp esi, 0x6400000
jb 0x10022be0
mov esi, eax
push esi
test ebx, ebx
je 0x10022bf0
push ebx
call fcn.10032818
add esp, 8
jmp 0x10022bf8
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10022c33
mov ebx, eax
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x38]
push eax
lea ecx, [esp + 0xc8]
push ecx
lea edx, [edi + ebx]
push edx
call fcn.10037db0
mov eax, dword [esp + 0x44]
add esp, 0xc
add edi, eax
mov dword [esp + 0x28], edi
mov byte [edi + ebx], 0
jmp 0x10022c37
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x14]
lea eax, [edi + ecx + 1]
cmp eax, 0x6400000
ja 0x10022cc8
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jbe 0x10022c9b
mov esi, ecx
test ecx, ecx
jne 0x10022c5d
mov esi, 0xa
cmp esi, eax
ja 0x10022c67
add esi, esi
cmp esi, eax
jbe 0x10022c61
cmp esi, 0x6400000
jb 0x10022c71
mov esi, eax
push esi
test ebx, ebx
je 0x10022c81
push ebx
call fcn.10032818
add esp, 8
jmp 0x10022c89
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10022cc4
mov ebx, eax
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x24], ebx
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x198]
push eax
lea ecx, [edi + ebx]
push ecx
call fcn.10037db0
mov edx, dword [esp + 0x20]
add esp, 0xc
add edi, edx
mov dword [esp + 0x28], edi
mov byte [edi + ebx], 0
jmp 0x10022cc8
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0xd4], 1
jne 0x10022d4c
lea eax, [edi + 3]
cmp eax, 0x6400000
ja 0x10022d4c
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jbe 0x10022d30
mov esi, ecx
test ecx, ecx
jne 0x10022cf2
mov esi, 0xa
cmp esi, eax
ja 0x10022cfc
add esi, esi
cmp esi, eax
jbe 0x10022cf6
cmp esi, 0x6400000
jb 0x10022d06
mov esi, eax
push esi
test ebx, ebx
je 0x10022d16
push ebx
call fcn.10032818
add esp, 8
jmp 0x10022d1e
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10022d48
mov ebx, eax
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x24], ebx
mov cx, word [0x10138c1c]
mov word [edi + ebx], cx
add edi, 2
mov dword [esp + 0x28], edi
mov byte [edi + ebx], 0
jmp 0x10022d4c
mov esi, dword [esp + 0x54]
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
push edi
push ebx
push edx
push 1
push eax
call fcn.10017fa0
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
cmp ebx, eax
je 0x10022d81
push ebx
call fcn.10030c8f
add esp, 4
mov dword [esp + 0x24], 0
mov ebx, dword [esp + 0x40]
xor edi, edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], edi
cmp ebx, edi
je 0x10022da2
push ebx
call fcn.10030c8f
add esp, 4
xor ebx, ebx
mov dword [esp + 0x40], ebx
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push 0x2000
lea eax, [esp + 0x198]
push eax
mov ecx, esi
call edx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
cmp eax, edi
je 0x10022fa5
cmp dword [ecx + 0xd4], 1
jne 0x10022e74
push eax
push str._x_r_n
lea edx, [esp + 0xcc]
push 0x64
push edx
call fcn.1003258e
lea eax, [esp + 0xd4]
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10022df7
sub eax, edx
mov edi, eax
je 0x10022e74
lea eax, [edi + 1]
cmp eax, 0x6400000
ja 0x10022e74
test eax, eax
jbe 0x10022e5a
mov esi, 0xa
cmp eax, esi
jb 0x10022e30
jmp 0x10022e20
add esi, esi
cmp esi, eax
jbe 0x10022e20
cmp esi, 0x6400000
jb 0x10022e30
mov esi, eax
mov eax, dword [esp + 0x40]
push esi
test eax, eax
je 0x10022e44
push eax
call fcn.10032818
add esp, 8
jmp 0x10022e4c
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10022e74
mov dword [esp + 0x48], esi
mov dword [esp + 0x40], eax
mov ebx, eax
push edi
lea eax, [esp + 0xc8]
push eax
push ebx
call fcn.10037db0
add esp, 0xc
mov dword [esp + 0x44], edi
mov byte [ebx + edi], 0
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x48]
lea eax, [edi + ecx + 1]
cmp eax, 0x6400000
ja 0x10022f05
cmp eax, ebx
jbe 0x10022eda
mov esi, ebx
test ebx, ebx
jne 0x10022e9a
mov esi, 0xa
cmp esi, eax
ja 0x10022ea6
mov edi, edi
add esi, esi
cmp esi, eax
jbe 0x10022ea0
cmp esi, 0x6400000
jb 0x10022eb0
mov esi, eax
mov eax, dword [esp + 0x40]
push esi
test eax, eax
je 0x10022ec4
push eax
call fcn.10032818
add esp, 8
jmp 0x10022ecc
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10022f05
mov ebx, esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
push edx
lea eax, [esp + 0x198]
push eax
lea ecx, [edi + esi]
push ecx
call fcn.10037db0
mov edx, dword [esp + 0x20]
add esp, 0xc
add edi, edx
mov dword [esp + 0x44], edi
mov byte [edi + esi], 0
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0xd4], 1
jne 0x10022f82
lea eax, [edi + 3]
cmp eax, 0x6400000
ja 0x10022f82
cmp eax, ebx
jbe 0x10022f68
mov esi, ebx
test ebx, ebx
jne 0x10022f2b
mov esi, 0xa
cmp esi, eax
ja 0x10022f36
nop
add esi, esi
cmp esi, eax
jbe 0x10022f30
cmp esi, 0x6400000
jb 0x10022f40
mov esi, eax
mov eax, dword [esp + 0x40]
push esi
test eax, eax
je 0x10022f54
push eax
call fcn.10032818
add esp, 8
jmp 0x10022f5c
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10022f82
mov dword [esp + 0x48], esi
mov dword [esp + 0x40], eax
mov cx, word [0x10138c1c]
mov eax, dword [esp + 0x40]
mov word [edi + eax], cx
add edi, 2
mov dword [esp + 0x44], edi
mov byte [edi + eax], 0
mov ebx, dword [esp + 0x40]
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
push edi
push ebx
push edx
push 1
push eax
call fcn.10017fa0
mov esi, dword [esp + 0x54]
jmp 0x10022d85
cmp dword [ecx + 0xd4], 1
jne 0x10023014
mov edx, ecx
mov eax, dword [edx]
cmp eax, 3
je 0x10022fbc
cmp eax, 4
jne 0x10023014
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x60]
push 5
push str.0_r_n_r_n
push eax
push 1
push ecx
mov ecx, dword [esp + 0x70]
call fcn.10017fa0
jmp 0x10023014
mov edx, dword [esp + 0x24]
mov esi, dword [ebp + 0x10]
mov ebx, dword [esp + 0x60]
push edi
mov edi, dword [esp + 0x60]
push edx
push esi
push 1
push ebx
mov ecx, edi
call fcn.10017fa0
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
test edx, edx
ja 0x10023008
test eax, eax
jbe 0x10023014
push esi
push ebx
push edi
mov edi, dword [esp + 0x60]
call fcn.100190d0
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov dword [ecx + 0x108], eax
mov byte [esp + 0x21a8], 0
test ebx, ebx
je 0x1002303e
push ebx
call fcn.10030c8f
add esp, 4
mov dword [esp + 0x21a8], 0xffffffff
mov eax, dword [esp + 0x40]
test eax, eax
je 0x1002305a
push eax
call fcn.10030c8f
add esp, 4
mov ecx, dword [esp + 0x21a0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2188]
xor ecx, esp
call fcn.10030c80
mov esp, ebp
pop ebp
ret 0x10