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

Disassembly:
sub esp, 0x10c
cmp dword [ecx + 0x38], 0x10
lea edx, [ecx + 0x24]
mov dword [esp], ecx
jb 0x10150555
mov edx, dword [ecx + 0x24]
mov dword [ecx + 0x34], 0
lea eax, [ecx + 0xb4]
mov byte [edx], 0
cmp dword [ecx + 0xc8], 0x10
jb 0x10150574
mov eax, dword [ecx + 0xb4]
push ebx
push ebp
mov dword [ecx + 0xc4], 0
lea ebx, [ecx + 0x60]
push esi
mov byte [eax], 0
mov dword [ecx + 0x20], 0x64
mov esi, dword [ebx]
push edi
mov edi, dword [ebx + 4]
cmp esi, edi
je 0x101505af
mov ecx, esi
call fcn.100f7db0
add esi, 0x6c
cmp esi, edi
jne 0x10150598
mov eax, dword [ebx]
mov ecx, dword [esp + 0x10]
mov dword [ebx + 4], eax
mov esi, dword [ecx + 0x6c]
lea ebp, [ecx + 0x6c]
mov edi, dword [ebp + 4]
cmp esi, edi
je 0x101505d8
nop dword [eax]
mov ecx, esi
call fcn.100f7db0
add esi, 0x64
cmp esi, edi
jne 0x101505c0
mov eax, dword [ebp]
mov ecx, dword [esp + 0x10]
mov dword [ebp + 4], eax
mov esi, dword [ecx + 0x78]
mov edi, dword [ecx + 0x7c]
cmp esi, edi
je 0x101505fa
mov ecx, esi
call fcn.100f7dc0
add esi, 0x60
cmp esi, edi
jne 0x101505e2
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x78]
mov dword [ecx + 0x7c], eax
mov esi, dword [ecx + 0x84]
lea edx, [ecx + 0x84]
mov edi, dword [edx + 4]
mov dword [esp + 0x34], edx
cmp esi, edi
je 0x1015062c
mov ecx, esi
call fcn.100f7db0
add esi, 0x68
cmp esi, edi
jne 0x10150611
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x90]
lea eax, [ecx + 0x90]
mov edi, dword [eax + 4]
mov dword [esp + 0x2c], eax
cmp esi, edi
je 0x1015065e
mov ecx, esi
call fcn.100f7db0
add esi, 0x68
cmp esi, edi
jne 0x10150643
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x10]
push dword [ecx + 0x1c]
mov ecx, dword [esp + 0x124]
call fcn.10120740
mov edi, eax
mov dword [esp + 0x6c], 0x10180cf0
lea ecx, [esp + 0xd4]
mov dword [esp + 0x18], edi
mov dword [esp + 0x7c], 0x10180cf8
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
push 0
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x74]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char____]
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x6c], 0x10180cec
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [esp + ecx + 0x68], eax
lea ecx, [esp + 0x84]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
mov esi, dword [esp + 0x10]
lea edx, [esp + 0x3c]
mov dword [esp + 0x84], 0x10180cb0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov ecx, dword [esi + 0x9c]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
mov eax, dword [ecx]
push edx
lea edx, [esp + 0x70]
push edx
call dword [eax + 4]
mov ecx, dword [esi + 0xa0]
or eax, 0xc
mov edx, eax
or edx, 1
cmp byte [ecx + 4], 0
lea ecx, [esp + 0x84]
cmove edx, eax
lea eax, [esp + 0x54]
push eax
mov dword [esp + 0x2c], edx
call fcn.100288f0
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x4c], eax
je 0x1015079d
cmp dword [esp + 0x50], 0x10
lea eax, [esp + 0x3c]
cmovae eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.10021160
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], edx
cmp dword [esp + 0x68], 0x10
lea edx, [esp + 0x54]
cmovae edx, dword [esp + 0x54]
mov dword [esp + 0x14], edx
cmp eax, ecx
je 0x101507be
mov ecx, dword [esp + 0x30]
mov dword [eax], edx
add eax, 4
jmp 0x101507e1
lea ecx, [esp + 0x14]
push ecx
push eax
lea ecx, [esp + 0x24]
call fcn.10021160
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], ecx
push dword [esp + 0x28]
sub eax, ecx
sar eax, 2
push eax
push ecx
push edi
call fcn.100fa970
add esp, 0x10
push edi
test al, al
jne 0x10150827
call fcn.100faab0
lea edi, [esi + 0xb4]
add esp, 4
cmp edi, eax
je 0x10150820
cmp dword [eax + 0x14], 0x10
mov edx, dword [eax + 0x10]
jb 0x10150817
mov eax, dword [eax]
push edx
push eax
mov ecx, edi
call fcn.1001ca10
xor al, al
jmp 0x10150e4b
call fcn.100fabb0
lea ecx, [esi + 0x24]
add esp, 4
cmp ecx, eax
je 0x10150848
cmp dword [eax + 0x14], 0x10
mov edx, dword [eax + 0x10]
jb 0x10150841
mov eax, dword [eax]
push edx
push eax
call fcn.1001ca10
push edi
call fcn.100fabf0
push edi
mov dword [esi + 0x20], eax
call fcn.100fac50
add esp, 8
cmp ebx, eax
je 0x1015096e
mov ebx, dword [eax + 4]
mov ecx, ebx
mov edi, dword [eax]
sub ecx, edi
mov eax, 0x4bda12f7
imul ecx
mov ecx, dword [esi + 0x68]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x60]
sub ecx, eax
mov dword [esp + 0x28], eax
mov eax, 0x4bda12f7
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jbe 0x101508d5
push ecx
lea ecx, [esi + 0x60]
call fcn.1014fab0
mov esi, dword [esi + 0x60]
cmp edi, ebx
je 0x101508c7
push edi
mov ecx, esi
call fcn.100f7d60
add edi, 0x6c
add esi, 0x6c
cmp edi, ebx
jne 0x101508b5
mov eax, dword [esp + 0x10]
mov dword [eax + 0x64], esi
mov esi, eax
jmp 0x1015096a
mov ecx, dword [esi + 0x64]
mov eax, 0x4bda12f7
sub ecx, dword [esp + 0x28]
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jbe 0x1015092e
push dword [esp + 0x28]
imul esi, eax, 0x6c
add esi, edi
push esi
push edi
call fcn.101430f0
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edi, dword [eax + 0x64]
cmp esi, ebx
je 0x10150925
push esi
mov ecx, edi
call fcn.100f7d60
add esi, 0x6c
add edi, 0x6c
cmp esi, ebx
jne 0x10150913
mov esi, dword [esp + 0x10]
mov dword [esi + 0x64], edi
jmp 0x1015096a
mov eax, dword [esp + 0x28]
imul esi, ecx, 0x6c
push eax
push ebx
push edi
add esi, eax
mov dword [esp + 0x20], esi
call fcn.101430f0
mov ebx, dword [esp + 0x1c]
mov eax, esi
add esp, 0xc
mov edi, dword [ebx + 0x64]
cmp eax, edi
je 0x10150965
mov ecx, esi
call fcn.100f7db0
add esi, 0x6c
cmp esi, edi
jne 0x10150953
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x64], eax
mov esi, ebx
mov edi, dword [esp + 0x18]
push edi
call fcn.100fac30
add esp, 4
cmp ebp, eax
je 0x10150a61
mov ebx, dword [eax + 4]
mov ecx, ebx
mov edi, dword [eax]
sub ecx, edi
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [ebp + 8]
mov eax, 0x51eb851f
sub ecx, dword [ebp]
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jbe 0x101509dd
push esi
mov ecx, ebp
call fcn.1014f970
mov esi, dword [ebp]
cmp edi, ebx
je 0x101509d5
push edi
mov ecx, esi
call fcn.100f7d30
add edi, 0x64
add esi, 0x64
cmp edi, ebx
jne 0x101509c3
mov dword [ebp + 4], esi
jmp 0x10150a59
mov ecx, dword [ebp + 4]
mov eax, 0x51eb851f
sub ecx, dword [ebp]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jbe 0x10150a28
push dword [ebp]
imul esi, eax, 0x64
add esi, edi
push esi
push edi
call fcn.101430b0
mov edi, dword [ebp + 4]
add esp, 0xc
cmp esi, ebx
je 0x10150a23
push esi
mov ecx, edi
call fcn.100f7d30
add esi, 0x64
add edi, 0x64
cmp esi, ebx
jne 0x10150a11
mov dword [ebp + 4], edi
jmp 0x10150a59
mov eax, dword [ebp]
imul esi, esi, 0x64
push eax
push ebx
push edi
add esi, eax
mov dword [esp + 0x20], esi
call fcn.101430b0
mov edi, dword [ebp + 4]
mov ebx, esi
add esp, 0xc
cmp ebx, edi
je 0x10150a56
mov ecx, esi
call fcn.100f7db0
add esi, 0x64
cmp esi, edi
jne 0x10150a48
mov dword [ebp + 4], ebx
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
push edi
call fcn.100fab90
lea ebp, [esi + 0x78]
add esp, 4
cmp ebp, eax
je 0x10150b61
mov ebx, dword [eax + 4]
mov ecx, ebx
mov edi, dword [eax]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [ebp + 8]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp]
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jbe 0x10150ada
push esi
mov ecx, ebp
call fcn.1014f820
mov esi, dword [ebp]
cmp edi, ebx
je 0x10150ad2
nop dword [eax]
push edi
mov ecx, esi
call fcn.100f77d0
add edi, 0x60
add esi, 0x60
cmp edi, ebx
jne 0x10150ac0
mov dword [ebp + 4], esi
jmp 0x10150b59
mov ecx, dword [ebp + 4]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jbe 0x10150b25
push dword [ebp]
lea esi, [eax + eax*2]
shl esi, 5
add esi, edi
push esi
push edi
call fcn.10143070
mov edi, dword [ebp + 4]
add esp, 0xc
cmp esi, ebx
je 0x10150b56
push esi
mov ecx, edi
call fcn.100f77d0
add esi, 0x60
add edi, 0x60
cmp esi, ebx
jne 0x10150b11
jmp 0x10150b56
mov eax, dword [ebp]
lea esi, [esi + esi*2]
push eax
shl esi, 5
add esi, eax
push ebx
push edi
mov dword [esp + 0x20], esi
call fcn.10143070
mov ebx, dword [ebp + 4]
mov edi, esi
add esp, 0xc
cmp edi, ebx
je 0x10150b56
mov ecx, esi
call fcn.100f7dc0
add esi, 0x60
cmp esi, ebx
jne 0x10150b48
mov dword [ebp + 4], edi
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov eax, dword [esi + 0x1c]
sub eax, 0x8b30
je 0x10150ca7
sub eax, 1
je 0x10150ba1
sub eax, 0x688
jne 0x10150e30
lea eax, [esp + 0x1c]
push edi
push eax
call fcn.100faa80
add esp, 8
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esi + 0x54], xmm0
mov dword [esi + 0x5c], eax
jmp 0x10150e30
push edi
call fcn.100faa60
mov dword [esp + 0x30], eax
xor esi, esi
add esp, 4
mov dword [esp + 0x1c], 0
xor ebp, ebp
mov dword [esp + 0x20], esi
mov edi, dword [eax + 4]
mov ecx, edi
mov ebx, dword [eax]
sub ecx, ebx
mov eax, 0x4ec4ec4f
mov dword [esp + 0x24], esi
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10150c5e
mov dword [esp + 0x14], esi
sub edi, ebx
mov eax, 0x4ec4ec4f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ebp
jbe 0x10150f6e
mov edi, dword [esp + 0x14]
cmp byte [ebx + edi + 0x3c], 0
lea eax, [ebx + edi]
je 0x10150c34
push eax
cmp esi, dword [esp + 0x28]
je 0x10150c26
mov ecx, esi
call fcn.100f7790
add esi, 0x68
mov dword [esp + 0x20], esi
jmp 0x10150c34
push esi
lea ecx, [esp + 0x24]
call fcn.101044d0
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
add edi, 0x68
mov dword [esp + 0x14], edi
inc ebp
mov edi, dword [eax + 4]
mov ecx, edi
mov ebx, dword [eax]
sub ecx, ebx
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x10150be6
mov ebx, dword [esp + 0x34]
lea eax, [esp + 0x1c]
cmp ebx, eax
je 0x10150c99
mov ecx, ebx
call fcn.10035ad0
mov eax, dword [esp + 0x1c]
mov dword [ebx], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 4], esi
mov dword [ebx + 8], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
lea ecx, [esp + 0x1c]
call fcn.10035ad0
jmp 0x10150e2c
mov edi, dword [esi + 0x60]
mov eax, 0x4bda12f7
mov esi, dword [esi + 0x64]
mov ecx, esi
sub ecx, edi
imul ecx
push fcn.1014e220
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
push edi
call fcn.10143ba0
push dword [esp + 0x28]
call fcn.100fabd0
xor ecx, ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x3c], ecx
xor esi, esi
xor ebp, ebp
mov dword [esp + 0x30], 0
mov edi, dword [eax + 4]
add esp, 0x14
mov ebx, dword [eax]
mov ecx, edi
sub ecx, ebx
mov dword [esp + 0x20], esi
mov eax, 0x4ec4ec4f
mov dword [esp + 0x24], ebp
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10150db2
xor ecx, ecx
mov dword [esp + 0x18], ecx
nop
sub edi, ebx
mov eax, 0x4ec4ec4f
imul edi
mov edi, dword [esp + 0x28]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10150f73
cmp byte [ebx + ecx + 0x3c], 0
lea eax, [ebx + ecx]
je 0x10150d74
push eax
cmp esi, ebp
je 0x10150d5e
mov ecx, esi
call fcn.100f7790
add esi, 0x68
mov dword [esp + 0x20], esi
jmp 0x10150d70
push esi
lea ecx, [esp + 0x24]
call fcn.101044d0
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
add ecx, 0x68
inc edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], edi
mov edi, dword [eax + 4]
mov ecx, edi
mov ebx, dword [eax]
sub ecx, ebx
mov eax, 0x4ec4ec4f
imul ecx
mov ecx, dword [esp + 0x18]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x28], eax
jb 0x10150d20
mov ebx, dword [esp + 0x1c]
jmp 0x10150db4
xor ebx, ebx
mov edi, dword [esp + 0x2c]
lea eax, [esp + 0x1c]
cmp edi, eax
je 0x10150dd5
mov ecx, edi
call fcn.10035ad0
mov dword [edi], ebx
xor ebx, ebx
mov dword [edi + 4], esi
xor esi, esi
mov dword [edi + 8], ebp
xor ebp, ebp
test ebx, ebx
je 0x10150e2c
mov edi, ebx
cmp edi, esi
je 0x10150dee
nop
mov ecx, edi
call fcn.100f7db0
add edi, 0x68
cmp edi, esi
jne 0x10150de0
sub ebp, ebx
mov eax, 0x4ec4ec4f
imul ebp
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul ecx, eax, 0x68
mov eax, ebx
cmp ecx, 0x1000
jb 0x10150e22
mov ebx, dword [eax - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10150ef9
push ecx
push ebx
call fcn.10174919
add esp, 8
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 0x9c]
lea edi, [esi + 0xb4]
push edi
push dword [esp + 0x124]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov edx, dword [esp + 0x30]
mov byte [esi + 0xb1], al
test edx, edx
je 0x10150e8a
mov ecx, dword [esp + 0x38]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x10150e80
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10150ef9
push ecx
push edx
call fcn.10174919
add esp, 8
mov ecx, dword [esp + 0x68]
cmp ecx, 0x10
jb 0x10150ebc
mov edx, dword [esp + 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10150eb2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10150ef9
push ecx
push edx
call fcn.10174919
add esp, 8
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0xf
mov byte [esp + 0x54], 0
cmp ecx, 0x10
jb 0x10150f09
mov edx, dword [esp + 0x3c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10150eff
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10150eff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10174919
add esp, 8
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
mov byte [esp + 0x3c], 0
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x6c], 0x10180cec
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [esp + ecx + 0x68], eax
lea ecx, [esp + 0x84]
call fcn.10025830
lea ecx, [esp + 0x8c]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [esp + 0xd4]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10c
ret 4
call fcn.10038ac0
call fcn.10038ac0
int3