Function at 0x10004380
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x172e245
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x1735060]
xor eax, esp
mov dword [esp + 0x80], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1735060]
xor eax, esp
push eax
lea eax, [esp + 0x98]
mov dword fs:[0], eax
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x34], edx
mov edx, dword [0x173664c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], eax
mov eax, dword [edx + 0xc]
mov ecx, 0x173664c
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
test esi, esi
mov dword [esp + 0xa0], 0
jne 0x1000440a
xor eax, eax
jmp 0x1000441f
mov eax, esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10004410
sub eax, edx
sar eax, 1
mov ebx, eax
push esi
lea eax, [esp + 0x20]
call fcn.10001cf0
mov esi, dword [esp + 0x1c]
xor ebx, ebx
cmp dword [esi - 0xc], ebx
jne 0x10004464
lea eax, [esi - 0x10]
mov dword [esp + 0xa0], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000445d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x10004df4
mov edx, dword [0x173664c]
mov eax, dword [edx + 0xc]
mov ecx, 0x173664c
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0xa0], 1
mov edx, dword [0x173664c]
mov eax, dword [edx + 0xc]
mov ecx, 0x173664c
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0xa0], 2
mov edx, dword [0x173664c]
mov eax, dword [edx + 0xc]
mov ecx, 0x173664c
call eax
lea ebp, [eax + 0x10]
mov dword [esp + 0x14], ebp
push 0x5c
lea ecx, [esp + 0x3c]
push ebx
push ecx
mov byte [esp + 0xac], 3
call fcn.1000f1f0
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov byte [esp + 0x5a], bl
add esp, 0xc
mov ebx, 0x1735fe8
lea eax, [esp + 0x20]
mov dword [esp + 0x48], 0x190
call fcn.10001c00
mov ebx, 0x1730fc0
lea eax, [esp + 0x24]
call fcn.10001c00
mov eax, dword [esi - 0xc]
test eax, eax
jl 0x10004587
push 0x1730fc4
push esi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x10004587
sub eax, esi
sar eax, 1
mov edi, eax
cmp edi, 0xffffffff
jle 0x10004587
push 0x1730fc4
call dword [0x172f1b4]
add edi, eax
mov eax, dword [esi - 0xc]
lea edx, [esp + 0x1c]
sub eax, edi
push edx
lea ecx, [esp + 0x1c]
call fcn.100053d0
lea edi, [esp + 0x24]
mov byte [esp + 0xa0], 4
call fcn.100021c0
mov byte [esp + 0xa0], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000457e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x24]
call fcn.10005330
mov eax, dword [esi - 0xc]
test eax, eax
jl 0x10004686
push 0x1730fdc
push esi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x10004686
sub eax, esi
sar eax, 1
mov edi, eax
cmp edi, 0xffffffff
jle 0x10004686
push 0x1730fdc
call dword [0x172f1b4]
add edi, eax
mov eax, dword [esi - 0xc]
lea ecx, [esp + 0x1c]
push ecx
sub eax, edi
lea ecx, [esp + 0x1c]
call fcn.100053d0
lea edi, [esp + 0x20]
mov byte [esp + 0xa0], 5
call fcn.100021c0
mov bl, 3
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10004611
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x20]
call fcn.10005330
mov edi, dword [esp + 0x20]
cmp dword [edi - 0xc], 0
jl 0x1000469c
push 0x1730ff8
push edi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x1000469c
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jle 0x1000469c
lea ecx, [esp + 0x18]
lea edx, [esp + 0x20]
call fcn.100038b0
lea edi, [esp + 0x20]
mov byte [esp + 0xa0], 6
call fcn.100021c0
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000469c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x1000469c
mov byte [esp + 0x51], 2
mov byte [esp + 0x50], 1
mov byte [esp + 0x52], 1
mov byte [esp + 0x53], 0x22
mov bl, 3
cmp dword [esi - 0xc], 0
jl 0x10004cfe
push 0x1730ffc
push esi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x100047c6
sub eax, esi
sar eax, 1
mov edi, eax
cmp edi, 0xffffffff
jle 0x100047c6
push 0x1730ffc
call dword [0x172f1b4]
add edi, eax
mov eax, dword [esi - 0xc]
lea ecx, [esp + 0x1c]
push ecx
sub eax, edi
lea ecx, [esp + 0x1c]
call fcn.100053d0
lea edi, [esp + 0x14]
mov byte [esp + 0xa0], 7
call fcn.100021c0
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10004723
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
cmp dword [edi - 0xc], 0
jl 0x1000478d
push 0x1730ff8
push edi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x1000478d
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jle 0x1000478d
lea ecx, [esp + 0x18]
lea edx, [esp + 0x14]
call fcn.100038b0
lea edi, [esp + 0x14]
mov byte [esp + 0xa0], 8
call fcn.100021c0
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1000478d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x14]
call fcn.10005330
mov ebx, edi
call fcn.100052b0
mov ebp, dword [esp + 0x14]
push 0x1731014
push ebp
call dword [0x172f17c]
test eax, eax
je 0x100047c1
push 0x1731024
push ebp
call dword [0x172f17c]
test eax, eax
jne 0x100047c6
mov byte [esp + 0x4c], 1
cmp dword [esi - 0xc], 0
jl 0x10004cfe
push 0x1731034
push esi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x10004981
sub eax, esi
sar eax, 1
mov edi, eax
cmp edi, 0xffffffff
jle 0x10004981
push 0x1731034
call dword [0x172f1b4]
add edi, eax
mov eax, dword [esi - 0xc]
lea ecx, [esp + 0x1c]
push ecx
sub eax, edi
lea ecx, [esp + 0x1c]
call fcn.100053d0
lea edi, [esp + 0x14]
mov byte [esp + 0xa0], 9
call fcn.100021c0
mov bl, 3
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1000484f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
cmp dword [edi - 0xc], 0
jl 0x100048b9
push 0x1730ff8
push edi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x100048b9
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jle 0x100048b9
lea ecx, [esp + 0x18]
lea edx, [esp + 0x14]
call fcn.100038b0
lea edi, [esp + 0x14]
mov byte [esp + 0xa0], 0xa
call fcn.100021c0
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100048b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x14]
call fcn.10005330
mov ebx, edi
call fcn.100052b0
mov ebp, dword [esp + 0x14]
push 0x1731050
push ebp
call dword [0x172f17c]
test eax, eax
je 0x10004979
mov edi, dword [0x172f17c]
push 0x1731060
push ebp
call edi
test eax, eax
je 0x10004979
push 0x1731068
push ebp
call edi
test eax, eax
je 0x1000496f
push 0x1731074
push ebp
call edi
test eax, eax
je 0x1000496f
push 0x173107c
push ebp
call edi
test eax, eax
je 0x10004965
push 0x173108c
push ebp
call edi
test eax, eax
je 0x10004965
push 0x1731094
push ebp
call edi
test eax, eax
je 0x1000495b
push 0x17310a4
push ebp
call edi
test eax, eax
je 0x1000495b
push ebp
call fcn.1000e005
add esp, 4
test eax, eax
jle 0x10004981
push ebp
call fcn.1000e005
add esp, 4
mov dword [esp + 0x48], eax
jmp 0x10004981
mov dword [esp + 0x48], 0x12c
jmp 0x10004981
mov dword [esp + 0x48], 0x320
jmp 0x10004981
mov dword [esp + 0x48], 0x2bc
jmp 0x10004981
mov dword [esp + 0x48], 0x190
cmp dword [esi - 0xc], 0
jl 0x10004cfe
push 0x17310ac
push esi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x10004ac2
sub eax, esi
sar eax, 1
mov edi, eax
cmp edi, 0xffffffff
jle 0x10004ac2
push 0x17310ac
call dword [0x172f1b4]
add edi, eax
mov eax, dword [esi - 0xc]
lea ecx, [esp + 0x1c]
push ecx
sub eax, edi
lea ecx, [esp + 0x1c]
call fcn.100053d0
lea edi, [esp + 0x14]
mov byte [esp + 0xa0], 0xb
call fcn.100021c0
mov bl, 3
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10004a0a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
cmp dword [edi - 0xc], 0
jl 0x10004a74
push 0x1730ff8
push edi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x10004a74
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jle 0x10004a74
lea ecx, [esp + 0x18]
lea edx, [esp + 0x14]
call fcn.100038b0
lea edi, [esp + 0x14]
mov byte [esp + 0xa0], 0xc
call fcn.100021c0
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004a74
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x14]
call fcn.10005330
mov ebx, edi
call fcn.100052b0
mov ebp, dword [esp + 0x14]
push 0x17310d0
push ebp
call dword [0x172f17c]
test eax, eax
jne 0x10004a9f
mov byte [esp + 0x4d], 1
jmp 0x10004ac2
mov edi, dword [0x172f17c]
push 0x17310e4
push ebp
call edi
test eax, eax
je 0x10004abd
push 0x1731100
push ebp
call edi
test eax, eax
jne 0x10004ac2
mov byte [esp + 0x4e], 1
cmp dword [esi - 0xc], 0
jl 0x10004cfe
push 0x1731110
push esi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x10004be0
sub eax, esi
sar eax, 1
mov edi, eax
cmp edi, 0xffffffff
jle 0x10004be0
push 0x1731110
call dword [0x172f1b4]
add edi, eax
mov eax, dword [esi - 0xc]
lea ecx, [esp + 0x1c]
push ecx
sub eax, edi
lea ecx, [esp + 0x1c]
call fcn.100053d0
lea edi, [esp + 0x14]
mov byte [esp + 0xa0], 0xd
call fcn.100021c0
mov bl, 3
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10004b4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
cmp dword [edi - 0xc], 0
jl 0x10004bb5
push 0x1730ff8
push edi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x10004bb5
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jle 0x10004bb5
lea ecx, [esp + 0x18]
lea edx, [esp + 0x14]
call fcn.100038b0
lea edi, [esp + 0x14]
mov byte [esp + 0xa0], 0xe
call fcn.100021c0
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004bb5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x14]
call fcn.10005330
mov ebx, edi
call fcn.100052b0
mov ebp, dword [esp + 0x14]
mov ecx, ebp
call fcn.10004e20
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [ecx], eax
mov dword [edx], 1
cmp dword [esi - 0xc], 0
jl 0x10004cfe
push 0x1731124
push esi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x10004cfe
sub eax, esi
sar eax, 1
mov edi, eax
cmp edi, 0xffffffff
jle 0x10004cfe
push 0x1731124
call dword [0x172f1b4]
add edi, eax
mov eax, dword [esi - 0xc]
lea ecx, [esp + 0x1c]
push ecx
sub eax, edi
lea ecx, [esp + 0x2c]
call fcn.100053d0
lea edi, [esp + 0x14]
mov byte [esp + 0xa0], 0xf
call fcn.100021c0
mov bl, 3
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10004c69
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
cmp dword [edi - 0xc], 0
jl 0x10004cd3
push 0x1730ff8
push edi
call fcn.1000d94c
add esp, 8
test eax, eax
je 0x10004cd3
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
jle 0x10004cd3
lea ecx, [esp + 0x18]
lea edx, [esp + 0x14]
call fcn.100038b0
lea edi, [esp + 0x14]
mov byte [esp + 0xa0], 0x10
call fcn.100021c0
mov byte [esp + 0xa0], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004cd3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x14]
call fcn.10005330
mov ebx, edi
call fcn.100052b0
mov ebp, dword [esp + 0x14]
mov ecx, ebp
call fcn.10004e20
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov dword [ecx], eax
mov dword [edx], 1
push 0
mov byte [esp + 0x53], 0
call dword [0x172f2a0]
push 0x48
mov edi, eax
push 0x5a
push edi
call dword [0x172f090]
mov ebx, dword [esp + 0x28]
push eax
push ebx
call fcn.1000e005
add esp, 4
push eax
call dword [0x172f180]
push edi
neg eax
push 0
mov dword [esp + 0x40], eax
call dword [0x172f29c]
mov eax, dword [esp + 0x20]
push 0x20
push eax
lea ecx, [esp + 0x5c]
push ecx
call dword [0x172f184]
lea edx, [esp + 0x38]
push edx
call dword [0x172f08c]
mov edi, eax
lea eax, [ebp - 0x10]
mov byte [esp + 0xa0], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004d7f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0xa0], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004da3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa0], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004dcb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov dword [esp + 0xa0], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004df2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
mov ecx, dword [esp + 0x98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x80]
xor ecx, esp
call fcn.1000d6c2
add esp, 0x90
ret