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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x54
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x24], ebx
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov edx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov ebx, dword [eax + 0x58]
mov dword [ebp - 0x3c], ebx
mov ebx, dword [eax + 0x50]
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x48]
push eax
push 2
push dword [ebp + 8]
mov dword [ebp - 0x14], ecx
push edi
push edx
push ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x34], ebx
call dword [sym.imp.dbghelp.dll_SymGetTypeInfo]
test eax, eax
je 0x101d4353
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x101d4353
lea eax, [ebp - 0x28]
push eax
push 0x13
push dword [ebp + 8]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call dword [sym.imp.dbghelp.dll_SymGetTypeInfo]
test eax, eax
je 0x101d3f06
cmp dword [ebp - 0x28], 0
je 0x101d3f06
test bl, 4
jne 0x101d3f06
cmp dword [esi + 0x10], 0xb
je 0x101d4353
lea eax, [ebp - 8]
push eax
push 0xd
push dword [ebp + 8]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call dword [sym.imp.dbghelp.dll_SymGetTypeInfo]
test eax, eax
je 0x101d4353
xor ecx, ecx
mov eax, ebx
and eax, 4
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 4], eax
je 0x101d3f9c
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], ecx
push eax
push 0x18
push dword [ebp + 8]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call dword [sym.imp.dbghelp.dll_SymGetTypeInfo]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
sub eax, ecx
je 0x101d3f89
dec eax
je 0x101d3f7d
dec eax
je 0x101d3f71
test bl, 0x40
jne 0x101d3f99
push 0x10098e8c
jmp 0x101d3f93
test bl, 0x40
jne 0x101d3f99
push 0x10098e7c
jmp 0x101d3f93
test bl, 0x40
jne 0x101d3f99
push 0x10098e6c
jmp 0x101d3f93
test bl, 0x40
jne 0x101d3f99
push 0x10098e5c
call fcn.100d3a8b
pop ecx
mov eax, dword [ebp - 4]
cmp dword [esi + 0x10], 0x12
jne 0x101d3fa9
mov dword [ebp - 0x18], 1
test eax, eax
jne 0x101d3fd3
mov edx, dword [esi + 8]
mov ecx, ebx
shr ecx, 8
and ecx, 0xf
inc ecx
movzx eax, word [edx + 0x54]
cmp eax, ecx
je 0x101d3fcd
test dword [edx + 0x94], 0x400
je 0x101d4035
cmp dword [ebp - 0x18], 0
jne 0x101d4035
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x10]
or eax, dword [ecx + 0x14]
je 0x101d3fe9
mov edx, edi
call fcn.1014945a
test eax, eax
je 0x101d4035
mov edi, ebx
and edi, 0x40
jne 0x101d3fff
push dword [ebp + 0xc]
push 0x1005a41c
call fcn.100d3a8b
pop ecx
pop ecx
test ebx, 0x4000
je 0x101d401b
test bl, 0x10
je 0x101d401b
push dword [ebp + 0xc]
push 0x1005a41c
call fcn.100d3a8b
pop ecx
pop ecx
test ebx, 0x2000
je 0x101d4032
test edi, edi
jne 0x101d4032
push 0x1005d9d0
call fcn.100d3a8b
pop ecx
mov edi, dword [ebp + 0xc]
cmp dword [ebp - 4], 0
je 0x101d4056
test bl, 0x40
jne 0x101d4056
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp - 8]
push 0x10098e98
call fcn.100d3a8b
add esp, 0x10
mov eax, dword [esi + 8]
and dword [eax + 0x94], 0xfffffbff
xor eax, eax
mov ecx, dword [esi + 8]
cmp dword [ecx + 0x44], eax
jne 0x101d4075
test bl, bl
js 0x101d45f1
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x54]
add ecx, 0x5c
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x54], eax
call fcn.101ce5aa
xor edx, edx
cmp dword [esi + 0xe4], edx
je 0x101d4210
mov edi, dword [esi + 8]
mov ecx, ebx
shr ecx, 8
and ecx, 0xf
inc ecx
movzx eax, word [edi + 0x54]
cmp eax, ecx
jae 0x101d40fd
mov ecx, esi
call fcn.101dcacd
mov ecx, dword [ebp - 0x48]
push edx
mov edx, dword [edi + 0x50]
push eax
call fcn.101ce540
xor edx, edx
test eax, eax
jne 0x101d414a
cmp dword [esi + 0xe0], edx
je 0x101d40e1
cmp dword [esi + 0xd8], edx
je 0x101d40e1
cmp dword [esi + 0xdc], edx
jne 0x101d414a
mov eax, dword [esi + 8]
mov ecx, esi
mov dword [eax + 0x74], 1
call fcn.101dcacd
mov ecx, dword [esi + 8]
mov dword [ecx + 0x78], eax
mov dword [ecx + 0x7c], edx
jmp 0x101d4148
cmp dword [edi + 0x44], edx
je 0x101d414a
push dword [edi + 0x50]
mov ecx, esi
call fcn.101dcacd
mov ecx, dword [edi + 0x48]
push edx
mov edx, dword [ebp - 0x48]
push eax
call fcn.101ce3bc
test eax, eax
jne 0x101d413f
mov eax, dword [esi + 8]
mov dword [eax + 0x74], 1
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov ecx, dword [eax + 0x10]
add ecx, dword [edx + 0x38]
mov eax, dword [eax + 0x14]
adc eax, dword [edx + 0x3c]
mov dword [edx + 0x78], ecx
mov dword [edx + 0x7c], eax
mov ecx, dword [esi + 8]
mov eax, dword [ebp - 0x48]
add dword [ecx + 0x48], eax
xor edx, edx
test bl, 0x10
je 0x101d41af
mov eax, dword [esi + 8]
mov edi, dword [eax + 0x90]
test edi, edi
je 0x101d41af
mov eax, dword [esi + 0x18]
test eax, eax
je 0x101d4168
cmp word [eax], dx
jne 0x101d41af
cmp dword [esi + 0x10], 0xe
je 0x101d4174
cmp dword [esi + 0x10], 0xc
jne 0x101d4183
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x101d41af
push 0x2a
pop ecx
cmp word [eax], cx
jne 0x101d41af
mov eax, dword [ebp + 8]
mov ecx, esi
mov dword [edi + 0x20], eax
call fcn.101dcacd
mov dword [edi + 0x40], eax
mov ecx, esi
mov dword [edi + 0x44], edx
mov eax, dword [ebp - 8]
mov dword [edi + 0x5c], eax
mov eax, dword [ebp - 0x48]
mov dword [edi + 0x30], eax
call fcn.101dcacd
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], edx
xor edi, edi
cmp dword [ebp - 0x18], edi
je 0x101d41bf
mov eax, dword [esi + 8]
cmp word [eax + 0x54], di
jne 0x101d41c9
push dword [ebp + 0xc]
mov ecx, esi
call fcn.101d3e0e
cmp dword [esi + 0xe8], edi
je 0x101d4210
mov ecx, dword [0x102c7ff8]
lea edx, [ebp - 0x1c]
call fcn.101ce29a
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x101d420a
mov ecx, dword [esi + 0xc]
cdq
sub dword [ecx + 0x10], eax
sbb dword [ecx + 0x14], edx
cmp dword [ebp - 4], 0
je 0x101d420a
test bl, 0x40
jne 0x101d420a
push dword [ebp - 0x1c]
push 0x10098ed0
call fcn.100d3a8b
pop ecx
pop ecx
mov dword [esi + 0xe8], edi
mov edi, dword [esi + 8]
mov edx, ebx
shr edx, 8
and edx, 0xf
inc edx
movzx eax, word [edi + 0x54]
cmp eax, edx
jae 0x101d4566
mov ecx, ebx
and ecx, 0x40
je 0x101d4249
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x24], 0
jne 0x101d4249
cmp edx, 1
jne 0x101d4249
test ebx, 0x201038
je 0x101d4566
test ebx, 0x200000
je 0x101d4261
test dword [edi + 0x94], 0x2000
jne 0x101d4566
movzx eax, word [edi + 0x54]
test ax, ax
je 0x101d4285
cmp dword [ebp - 4], 0
jne 0x101d4285
cmp dword [ebp - 0x18], 0
jne 0x101d4285
test ecx, ecx
jne 0x101d4285
push 0x100597b0
call fcn.100d3a8b
pop ecx
mov ecx, dword [esi + 0x10]
cmp ecx, 0xb
je 0x101d42f2
cmp ecx, 0x12
je 0x101d42f2
mov eax, dword [esi + 8]
mov edi, dword [eax + 0x90]
test edi, edi
je 0x101d42f2
mov eax, dword [esi + 0x18]
test eax, eax
je 0x101d42ad
xor edx, edx
cmp word [eax], dx
jne 0x101d42f2
cmp ecx, 0xe
je 0x101d42b7
cmp ecx, 0xc
jne 0x101d42c6
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x101d42f2
push 0x2a
pop ecx
cmp word [eax], cx
jne 0x101d42f2
mov eax, dword [ebp + 8]
mov ecx, esi
mov dword [edi + 0x20], eax
call fcn.101dcacd
mov dword [edi + 0x40], eax
mov ecx, esi
mov dword [edi + 0x44], edx
mov eax, dword [ebp - 8]
mov dword [edi + 0x5c], eax
mov eax, dword [ebp - 0x48]
mov dword [edi + 0x30], eax
call fcn.101dcacd
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], edx
mov ecx, dword [esi + 8]
xor edi, edi
mov edx, dword [ecx + 0x94]
mov eax, edx
shr eax, 3
and eax, 1
mov dword [ebp - 0x38], eax
cmp dword [ecx + 0x44], edi
je 0x101d4310
xor eax, eax
inc eax
shl eax, 3
xor eax, edx
and eax, 8
xor eax, edx
mov dword [ecx + 0x94], eax
mov eax, dword [esi + 8]
mov dword [eax + 0x6c], edi
mov eax, dword [esi + 8]
and dword [eax + 0x94], 0xfffffffb
mov edi, dword [ebp - 8]
lea eax, [edi*4 + 0xc]
push eax
call dword [sym.imp.msvcrt.dll_malloc]
mov dword [ebp - 0x20], eax
pop ecx
test eax, eax
jne 0x101d435e
mov eax, dword [esi + 8]
mov dword [eax + 0x74], 9
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push eax
push 7
push dword [ebp + 8]
xor ecx, ecx
mov dword [eax], edi
push dword [ebp - 0xc]
mov dword [eax + 4], ecx
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call dword [sym.imp.dbghelp.dll_SymGetTypeInfo]
test eax, eax
je 0x101d4353
mov eax, dword [esi + 0xc]
push 0x10
pop edi
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x101d4466
mov eax, dword [eax + 0x28]
xor edx, edx
mov edi, edx
mov dword [ebp - 0x18], eax
push 0x2e
push dword [eax]
dec ecx
mov dword [ebp - 0x30], ecx
call dword [sym.imp.msvcrt.dll_wcschr]
pop ecx
pop ecx
test eax, eax
je 0x101d43d5
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x5c]
test ecx, ecx
je 0x101d43d5
mov edx, dword [ebp - 0x18]
sub eax, dword [edx]
sar eax, 1
push eax
push dword [ecx + 4]
push dword [edx]
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
je 0x101d4463
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x101d4418
mov edx, ecx
lea eax, [edx + 2]
mov dword [ebp - 0x2c], eax
mov ax, word [edx]
add edx, 2
cmp ax, word [ebp - 0x24]
jne 0x101d43e7
sub edx, dword [ebp - 0x2c]
sar edx, 1
lea eax, [edx - 2]
cmp edi, eax
jae 0x101d444d
lea edx, [ecx + 2]
xor edi, edi
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x101d4404
sub ecx, edx
sar ecx, 1
lea edi, [ecx - 2]
jmp 0x101d444d
mov edx, dword [eax]
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x2c], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x24]
jne 0x101d4422
sub ecx, dword [ebp - 0x2c]
sar ecx, 1
cmp edi, ecx
jae 0x101d444d
mov edi, edx
xor edx, edx
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
cmp ax, dx
jne 0x101d443e
sub edi, ecx
sar edi, 1
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
add eax, 0x38
mov dword [ebp - 0x18], eax
test ecx, ecx
jne 0x101d4399
jmp 0x101d4466
push 0x10
pop edi
mov eax, dword [esi + 8]
xor ecx, ecx
mov dword [eax + 0x84], edi
mov eax, dword [esi + 8]
inc word [eax + 0x54]
cmp dword [ebp - 8], ecx
jbe 0x101d44d4
mov edi, dword [ebp - 0x20]
mov ebx, ecx
add edi, 8
lea eax, [ebp - 0x30]
push eax
push ecx
push dword [edi]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call dword [sym.imp.dbghelp.dll_SymGetTypeInfo]
test eax, eax
je 0x101d44b6
mov eax, dword [ebp - 0x30]
cmp eax, 7
je 0x101d44bc
cmp eax, 5
je 0x101d44bc
cmp eax, 0x12
je 0x101d44bc
cmp eax, 0x19
je 0x101d44bc
cmp dword [ebp - 4], 0
je 0x101d44c5
push dword [edi]
mov ecx, esi
call fcn.101d614d
inc ebx
add edi, 4
push 0
pop ecx
cmp ebx, dword [ebp - 8]
jb 0x101d4485
mov ebx, dword [ebp - 0x34]
mov eax, dword [esi + 8]
mov ecx, 0xffff
add word [eax + 0x54], cx
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x101d44fb
mov ecx, dword [esi + 0xc]
cdq
add dword [ecx + 0x10], eax
adc dword [ecx + 0x14], edx
mov dword [esi + 0xe8], 1
test ebx, 0x1000
je 0x101d452b
mov eax, dword [esi + 8]
mov edi, dword [eax + 0x90]
test edi, edi
je 0x101d452b
mov eax, dword [esi + 0x18]
test eax, eax
je 0x101d451e
xor ecx, ecx
cmp word [eax], cx
jne 0x101d452b
mov ecx, esi
call fcn.101dcacd
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], edx
push dword [ebp - 0x20]
call dword [sym.imp.msvcrt.dll_free]
mov eax, dword [ebp - 0x38]
pop ecx
mov ecx, dword [esi + 8]
shl eax, 3
xor eax, dword [ecx + 0x94]
and eax, 8
xor dword [ecx + 0x94], eax
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x58], ecx
mov ecx, dword [esi + 8]
add ecx, 0x5c
call fcn.101ce5d4
jmp 0x101d45f1
cmp dword [ebp - 4], 0
jne 0x101d4584
test ebx, 0x2000
jne 0x101d4584
test bl, 0x40
jne 0x101d4584
push 0x100597b0
call fcn.100d3a8b
pop ecx
mov ecx, dword [esi + 8]
add ecx, 0x5c
call fcn.101ce5d4
mov eax, dword [esi + 8]
mov edi, dword [eax + 0x90]
test edi, edi
je 0x101d45f1
mov eax, dword [esi + 0x18]
test eax, eax
je 0x101d45aa
xor ecx, ecx
cmp word [eax], cx
jne 0x101d45f1
cmp dword [esi + 0x10], 0xe
je 0x101d45b6
cmp dword [esi + 0x10], 0xc
jne 0x101d45c5
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x101d45f1
push 0x2a
pop ecx
cmp word [eax], cx
jne 0x101d45f1
mov eax, dword [ebp + 8]
mov ecx, esi
mov dword [edi + 0x20], eax
call fcn.101dcacd
mov dword [edi + 0x40], eax
mov ecx, esi
mov dword [edi + 0x44], edx
mov eax, dword [ebp - 8]
mov dword [edi + 0x5c], eax
mov eax, dword [ebp - 0x48]
mov dword [edi + 0x30], eax
call fcn.101dcacd
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], edx
mov eax, dword [ebp - 0x48]
jmp 0x101d4355