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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5ac
mov eax, dword [0x73f3e530]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
push esi
push edi
push 3
mov eax, dword [ebx + 0x4c]
mov edi, dword [eax + 4]
mov dword [ebp - 0x570], edi
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x73f59474]
mov ecx, edi
call esi
mov ecx, dword [ebp + 8]
mov esi, 0xffff
mov dword [ebp - 0x56c], eax
test eax, eax
jle 0x73e92767
mov dword [ebp - 0x580], 4
cmp eax, 4
jge 0x73e91389
mov ecx, dword [ebx + 0x4c]
call fcn.73e750a0
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.73ddffa0
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0x580]
push eax
lea eax, [ebp - 0x5a4]
mov ecx, esi
push eax
push 0
push 3
call dword [0x73f59474]
mov ecx, edi
call esi
test eax, eax
je 0x73e92728
cmp dword [ebp - 0x5a4], 0xffffffff
je 0x73e914e5
push 1
lea eax, [ebx + 0x298]
push 1
push eax
call fcn.73ef1320
add esp, 0xc
test eax, eax
jne 0x73e913f5
mov ecx, dword [ebx + 0x4c]
call fcn.73e75250
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.73ddffa0
mov esp, ebp
pop ebp
ret 4
cmp dword [ebp - 0x56c], 0x18
mov eax, 0xffff
mov dword [ebx + 0x270], 1
mov dword [ebp - 0x59c], 0xffffffff
mov word [ebp - 0x598], ax
mov dword [ebp - 0x594], 0
mov dword [ebp - 0x590], 0
mov dword [ebp - 0x58c], 0
mov dword [ebp - 0x588], 0
mov dword [ebp - 0x580], 0x18
jl 0x73e9136c
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0x580]
push eax
lea eax, [ebp - 0x59c]
mov ecx, esi
push eax
push 0
push 3
call dword [0x73f59474]
mov ecx, edi
call esi
test eax, eax
je 0x73e92728
movzx eax, word [ebp - 0x59c]
mov word [ebx + 0x224], ax
movzx eax, word [ebp - 0x59a]
mov word [ebx + 0x228], ax
movzx eax, word [ebp - 0x598]
mov word [ebx + 0x22c], ax
mov eax, dword [ebp - 0x594]
mov dword [ebx + 0x230], eax
mov eax, dword [ebp - 0x590]
mov dword [ebx + 0x234], eax
mov eax, dword [ebp - 0x58c]
mov dword [ebx + 0x238], eax
mov eax, dword [ebp - 0x588]
mov dword [ebp - 0x578], 0
mov dword [ebx + 0x23c], eax
jmp 0x73e91564
cmp dword [ebp - 0x56c], 0x40
mov dword [ebp - 0x580], 0x40
jl 0x73e9136c
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0x580]
push eax
lea eax, [ebx + 0x218]
mov ecx, esi
push eax
push 0
push 3
call dword [0x73f59474]
mov ecx, edi
call esi
test eax, eax
je 0x73e92728
mov esi, dword [ebx + 0x21c]
mov dword [ebp - 0x578], esi
cmp esi, 0x13091f3
jb 0x73e9136c
mov eax, dword [ebx + 0x4c]
cmp dword [eax + 0x214], 0x13091f3
jb 0x73e9136c
mov dword [ebx + 0x270], 0
cmp esi, 0x130ba2e
jae 0x73e9156e
mov dword [ebx + 0x24c], 0
mov edx, dword [ebx + 0x408]
movzx ecx, word [ebx + 0x250]
test edx, edx
je 0x73e915a0
mov al, byte [ebx + 0x410]
and ecx, 0xfffb
and al, 1
movzx eax, al
shl ax, 2
or ax, cx
mov word [ebx + 0x250], ax
jmp 0x73e915ac
shr cl, 2
and cl, 1
mov byte [ebx + 0x410], cl
mov eax, dword [ebp - 0x580]
mov edi, dword [ebp - 0x56c]
mov dword [ebp - 0x548], eax
mov eax, dword [ebx + 0x248]
add eax, dword [ebx + 0x240]
add eax, dword [ebx + 0x23c]
add eax, dword [ebx + 0x238]
add eax, dword [ebx + 0x234]
add eax, dword [ebx + 0x230]
mov ecx, dword [ebp - 0x548]
add eax, ecx
add eax, dword [ebx + 0x24c]
cmp edi, eax
jne 0x73e9136c
test edx, edx
je 0x73e91625
mov ecx, dword [ebx + 0x4c]
cmp dword [ecx + 0x214], 0x1306c1f
jne 0x73e9161f
cmp dword [ebp + 8], 0
je 0x73e916e2
mov dword [ecx + 0x214], 0x1312e94
mov ecx, dword [ebp - 0x548]
mov esi, dword [ebx + 0x230]
test esi, esi
jle 0x73e91bb6
mov eax, edi
sub eax, ecx
cmp eax, esi
jl 0x73e9136c
cmp dword [ebp - 0x578], 0x130ba2e
lea edx, [ebx + 0x60]
mov byte [ebp - 0x565], 0
jae 0x73e9199d
xor eax, eax
mov dword [ebp - 0x594], 0
xor edi, edi
mov dword [ebp - 0x554], eax
push esi
mov ecx, edx
mov dword [ebp - 0x59c], eax
mov dword [ebp - 0x598], edi
mov dword [ebp - 0x590], eax
mov dword [ebp - 0x58c], eax
mov word [ebp - 0x588], 0x101
call fcn.73e7e380
test eax, eax
je 0x73e91979
mov esi, dword [ebx + 0x230]
lea edx, [ebx + 0x230]
test esi, esi
js 0x73e91979
jle 0x73e91700
push esi
lea ecx, [ebp - 0x59c]
call fcn.73e73870
mov ecx, dword [ebp - 0x59c]
mov dword [ebp - 0x554], ecx
test eax, eax
je 0x73e91979
mov edi, dword [ebp - 0x598]
lea edx, [ebx + 0x230]
jmp 0x73e91702
push 0
push 0xb
call fcn.73e75220
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.73ddffa0
mov esp, ebp
pop ebp
ret 4
xor ecx, ecx
lea eax, [esi + edi]
mov dword [ebp - 0x564], eax
test ecx, ecx
jne 0x73e9171d
xor eax, eax
mov dword [ebp - 0x554], ecx
mov dword [ebp - 0x564], eax
mov eax, dword [ebp - 0x570]
push edx
push edi
push dword [ebp - 0x548]
mov eax, dword [eax]
push 3
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x73f59474]
mov ecx, dword [ebp - 0x570]
call esi
test eax, eax
jne 0x73e91753
mov ecx, dword [ebx + 0x4c]
call fcn.73e75280
jmp 0x73e91981
mov edx, dword [ebp - 0x564]
cmp edi, edx
jae 0x73e91937
mov dword [ebp - 0x55c], 0xff00
jmp 0x73e91770
lea esi, [edi + 0x30]
mov eax, esi
cmp eax, edx
jae 0x73e9178a
lea esp, [esp]
cmp byte [eax], 0
je 0x73e91797
inc eax
cmp eax, edx
jb 0x73e91780
mov ecx, dword [ebx + 0x4c]
call fcn.73e750a0
jmp 0x73e91981
mov ecx, esi
lea eax, [ecx + 1]
mov dword [ebp - 0x54c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x73e917a2
sub ecx, dword [ebp - 0x54c]
lea eax, [edi + 0x31]
add eax, ecx
cmp eax, edx
jae 0x73e9178a
cmp byte [eax], 0
je 0x73e917cf
inc eax
cmp eax, edx
jb 0x73e917b8
mov ecx, dword [ebx + 0x4c]
call fcn.73e750a0
jmp 0x73e91981
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x73e917d4
sub ecx, edx
lea eax, [ecx + 0x31]
add eax, edi
push eax
push esi
lea eax, [ebx + 0x60]
push eax
push 0x40
call fcn.73e87810
mov edx, eax
add esp, 0x10
test edx, edx
je 0x73e91903
mov dword [edx + 4], 0xffff
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0xffffffff
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xffff
mov dword [edx + 0x18], 0
mov dword [edx + 0x1c], 0
mov dword [edx], 0
movzx eax, word [edi + 4]
mov word [edx + 4], ax
mov eax, dword [edi + 8]
mov dword [edx + 8], eax
mov eax, dword [edi + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [edx + 0x10], eax
movzx eax, word [edi + 0x14]
mov word [edx + 0x14], ax
mov cx, word [edi + 0x18]
movzx eax, word [edx + 0x20]
and cx, 1
and ax, word [ebp - 0x55c]
or cx, ax
mov word [edx + 0x20], cx
mov ecx, esi
mov al, byte [edi + 0x19]
mov byte [edx + 0x21], al
movzx eax, word [edi + 0x1a]
mov word [edx + 0x22], ax
mov eax, dword [edi + 0x1c]
mov dword [edx + 0x24], eax
mov eax, dword [edi + 0x20]
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], 0
movzx eax, word [edi + 0x28]
mov word [edx + 0x30], ax
xor eax, eax
mov word [edx + 0x32], ax
mov dword [edx + 0x34], eax
mov dword [edx + 0x38], eax
mov dword [edx + 0x3c], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x54c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x73e918b2
sub ecx, dword [ebp - 0x54c]
lea eax, [ecx + 0x31]
add eax, edi
mov ecx, eax
mov dword [ebp - 0x57c], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x54c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x73e918d5
mov eax, dword [ebp - 0x57c]
sub ecx, dword [ebp - 0x54c]
add eax, 4
add eax, ecx
and eax, 0xfffffffc
sub eax, edi
sub eax, 0x30
push eax
lea eax, [edx + 0x40]
push esi
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x73e91906
sub esi, ecx
lea edx, [esi + edi]
lea ecx, [edx + 0x31]
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x73e91918
sub ecx, esi
lea edi, [edx + 0x35]
mov edx, dword [ebp - 0x564]
add edi, ecx
and edi, 0xfffffffc
cmp edi, edx
jb 0x73e91770
mov eax, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x60]
sub eax, ecx
mov esi, dword [ebp - 0x548]
add esi, dword [ebx + 0x230]
mov dword [ebx + 0x230], eax
mov eax, dword [ebp - 0x554]
mov dword [ebp - 0x558], ecx
mov dword [ebp - 0x548], esi
test eax, eax
je 0x73e91a1c
push eax
call fcn.73de0647
add esp, 4
jmp 0x73e91a1c
mov ecx, dword [ebx + 0x4c]
call fcn.73e75250
mov eax, dword [ebp - 0x554]
test eax, eax
je 0x73e91374
push eax
call fcn.73de0647
add esp, 4
jmp 0x73e91374
mov eax, dword [edx + 8]
lea edi, [edx + 4]
sub eax, dword [edi]
add eax, dword [edx]
cmp esi, eax
jle 0x73e919be
push esi
mov ecx, edx
call fcn.73e73870
test eax, eax
je 0x73e913d8
lea edx, [ebx + 0x60]
mov ecx, dword [edi]
add esi, ecx
mov eax, dword [edx]
mov dword [ebp - 0x558], ecx
test eax, eax
jne 0x73e919d0
xor esi, esi
mov dword [edi], esi
lea edi, [ebx + 0x230]
mov dword [edx], eax
mov eax, dword [ebp - 0x570]
push edi
push ecx
push dword [ebp - 0x548]
mov eax, dword [eax]
push 3
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x73f59474]
mov ecx, dword [ebp - 0x570]
call esi
test eax, eax
je 0x73e92728
mov eax, dword [ebp - 0x548]
add eax, dword [edi]
mov dword [ebp - 0x548], eax
mov byte [ebp - 0x565], 1
mov edi, dword [ebx + 0x4c]
mov eax, dword [edi]
mov esi, dword [eax + 0x5c]
mov ecx, esi
call dword [0x73f59474]
mov ecx, edi
call esi
test eax, eax
jne 0x73e91a4c
lea esi, [ebx + 0x60]
push esi
call fcn.73e8ef90
add esp, 4
test eax, eax
je 0x73e913d8
mov esi, dword [esi]
jmp 0x73e91a52
mov esi, dword [ebp - 0x558]
mov edi, dword [ebx + 0x64]
cmp esi, edi
jae 0x73e91bb6
lea ecx, [ecx]
cmp byte [ebp - 0x565], 0
mov dword [ebp - 0x5ac], esi
je 0x73e91ab7
lea ecx, [esi + 0x40]
mov eax, ecx
cmp eax, edi
jae 0x73e9136c
lea esp, [esp]
cmp byte [eax], 0
je 0x73e91a8f
inc eax
cmp eax, edi
jb 0x73e91a80
jmp 0x73e9136c
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x73e91a92
sub ecx, edx
lea eax, [esi + 0x41]
add eax, ecx
cmp eax, edi
jae 0x73e9136c
cmp byte [eax], 0
je 0x73e91ab7
inc eax
cmp eax, edi
jb 0x73e91aa8
jmp 0x73e9136c
mov dword [esi], 0
lea ecx, [ebx + 0x78]
mov eax, 0xfffe
mov dword [ebp - 0x54c], ecx
and word [esi + 0x20], ax
lea edx, [ecx + 4]
xor eax, eax
mov dword [ebp - 0x55c], edx
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov eax, dword [ecx + 8]
sub eax, dword [edx]
add eax, dword [ecx]
cmp eax, 4
jge 0x73e91b07
push 4
call fcn.73e73870
test eax, eax
je 0x73e913d8
mov ecx, dword [ebp - 0x54c]
mov edx, dword [ebp - 0x55c]
mov eax, dword [edx]
mov dword [ebp - 0x54c], eax
add eax, 4
mov dword [ebp - 0x558], eax
mov eax, dword [ecx]
test eax, eax
jne 0x73e91b24
mov dword [ebp - 0x558], eax
mov dword [ecx], eax
mov eax, dword [ebp - 0x558]
mov dword [edx], eax
lea eax, [ebp - 0x5ac]
push 4
push eax
push dword [ebp - 0x54c]
call fcn.73e73e50
lea ecx, [esi + 0x40]
add esp, 0xc
mov edx, ecx
lea eax, [edx + 1]
mov dword [ebp - 0x54c], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x73e91b53
sub edx, dword [ebp - 0x54c]
lea eax, [ecx + 1]
mov dword [ebp - 0x54c], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x73e91b70
sub ecx, dword [ebp - 0x54c]
add ecx, 0x41
add ecx, esi
lea eax, [ecx + 1]
mov dword [ebp - 0x54c], eax
jmp 0x73e91b90
mov al, byte [ecx]
inc ecx
test al, al
jne 0x73e91b90
sub ecx, dword [ebp - 0x54c]
lea eax, [edx + 5]
inc word [ebx + 0x58]
add eax, ecx
and eax, 0xfffffffc
add esi, 0x40
add esi, eax
cmp esi, edi
jb 0x73e91a60
mov ecx, dword [ebx + 0x234]
mov esi, dword [ebp - 0x56c]
mov edx, dword [ebp - 0x548]
test ecx, ecx
jle 0x73e91e5a
mov eax, esi
sub eax, edx
cmp eax, ecx
jl 0x73e9136c
mov edi, edx
mov dword [ebx + 0xa8], edx
add edx, ecx
mov dword [ebp - 0x564], edi
cmp dword [ebx + 0x408], 0
mov dword [ebp - 0x548], edx
je 0x73e91e5a
cmp dword [ebx + 0x90], 0
jne 0x73e91e5a
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x554], eax
mov dword [ebp - 0x560], 4
mov eax, dword [eax]
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0x560]
push eax
lea eax, [ebp - 0x54c]
mov ecx, esi
push eax
push edi
push 3
call dword [0x73f59474]
mov ecx, dword [ebp - 0x554]
call esi
test eax, eax
jne 0x73e91c59
mov ecx, dword [ebx + 0x4c]
call fcn.73e75280
jmp 0x73e91374
mov eax, dword [ebp - 0x54c]
cmp eax, 0xf12eba2d
je 0x73e91dd1
cmp eax, 0xf13151e4
je 0x73e91dd6
mov eax, 0xcccccccd
mov byte [ebx + 0x158], 1
mul dword [ebx + 0x234]
push 0
mov esi, edx
lea ecx, [ebx + 0x90]
shr esi, 4
lea eax, [esi*8]
sub eax, esi
shl eax, 2
push eax
mov dword [ebp - 0x560], eax
call fcn.73e72580
test eax, eax
jne 0x73e91cbd
mov ecx, dword [ebx + 0x4c]
call fcn.73e75250
jmp 0x73e91374
mov edi, dword [ebx + 0x90]
mov dword [ebp - 0x560], 0x14
test esi, esi
je 0x73e91dae
jmp 0x73e91ce0
mov eax, dword [ebp - 0x554]
dec esi
mov dword [ebp - 0x55c], esi
mov dword [ebp - 0x598], 0xffff
mov dword [ebp - 0x594], 0
mov eax, dword [eax]
mov dword [ebp - 0x590], 0xffffffff
mov dword [ebp - 0x58c], 0
mov dword [ebp - 0x588], 0xffff
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0x560]
push eax
lea eax, [ebp - 0x598]
mov ecx, esi
push eax
push dword [ebp - 0x564]
push 3
call dword [0x73f59474]
mov ecx, dword [ebp - 0x554]
call esi
test eax, eax
je 0x73e91db9
movzx eax, word [ebp - 0x598]
add dword [ebp - 0x564], 0x14
mov esi, dword [ebp - 0x55c]
mov word [edi], ax
mov eax, dword [ebp - 0x594]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x590]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x58c]
mov dword [edi + 0xc], eax
movzx eax, word [ebp - 0x588]
mov word [edi + 0x10], ax
xor eax, eax
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0
mov word [edi + 2], ax
mov word [edi + 0x12], ax
add edi, 0x1c
test esi, esi
jne 0x73e91ce0
mov dword [ebx + 0x154], edi
jmp 0x73e91e4e
mov ecx, dword [ebx + 0x4c]
call fcn.73e75280
lea ecx, [ebx + 0x90]
call fcn.73e6f9d0
jmp 0x73e91374
cmp eax, 0xf13151e4
mov ecx, dword [ebx + 0x234]
sete al
sub ecx, dword [ebp - 0x560]
inc al
add edi, dword [ebp - 0x560]
push 0
mov dword [ebp - 0x560], ecx
push ecx
lea ecx, [ebx + 0x90]
mov byte [ebx + 0x158], al
call fcn.73e72580
test eax, eax
je 0x73e91cb0
mov eax, dword [ebp - 0x554]
mov eax, dword [eax]
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0x560]
push eax
push dword [ebx + 0x90]
mov ecx, esi
push edi
push 3
call dword [0x73f59474]
mov ecx, dword [ebp - 0x554]
call esi
test eax, eax
je 0x73e91db9
mov eax, dword [ebx + 0x94]
mov dword [ebx + 0x154], eax
mov esi, dword [ebp - 0x56c]
mov edx, dword [ebp - 0x548]
mov edi, dword [ebx + 0x238]
test edi, edi
je 0x73e91f16
mov eax, esi
sub eax, edx
cmp eax, edi
jl 0x73e9136c
cmp dword [ebx + 0x408], 0
jne 0x73e91f0a
lea esi, [ebx + 0x124]
test edi, edi
js 0x73e913d8
mov eax, dword [esi + 8]
lea ecx, [esi + 4]
sub eax, dword [ecx]
add eax, dword [esi]
mov dword [ebp - 0x54c], ecx
cmp edi, eax
jle 0x73e91eb9
push edi
mov ecx, esi
call fcn.73e73870
test eax, eax
je 0x73e913d8
mov ecx, dword [ebp - 0x54c]
mov eax, dword [ecx]
mov edx, dword [esi]
add eax, edi
test edx, edx
jne 0x73e91ec9
xor eax, eax
xor edi, edi
jmp 0x73e91ecb
mov edi, edx
mov dword [esi], edi
mov edi, dword [ebp - 0x570]
mov dword [ecx], eax
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
lea eax, [ebx + 0x238]
push eax
push edx
push dword [ebp - 0x548]
mov ecx, esi
push 3
call dword [0x73f59474]
mov ecx, edi
call esi
test eax, eax
je 0x73e92728
mov edx, dword [ebp - 0x548]
mov esi, dword [ebp - 0x56c]
add edx, dword [ebx + 0x238]
mov dword [ebp - 0x548], edx
mov ecx, dword [ebx + 0x23c]
lea edi, [ebx + 0x23c]
test ecx, ecx
jle 0x73e92416
mov eax, esi
sub eax, edx
cmp eax, ecx
jl 0x73e9136c
cmp ecx, 0x7fffffff
ja 0x73e91cb0
push 0x73dbf874
push ecx
call fcn.73de06fd
add esp, 8
mov dword [ebp - 0x554], eax
test eax, eax
je 0x73e91cb0
push 0
push 0
push eax
call fcn.73e73e50
push 0
call fcn.73de0647
mov eax, dword [ebp - 0x570]
add esp, 0x10
mov eax, dword [eax]
push edi
mov edi, dword [ebp - 0x554]
push edi
push dword [ebp - 0x548]
mov esi, dword [eax + 0x14]
mov ecx, esi
push 3
call dword [0x73f59474]
mov ecx, dword [ebp - 0x570]
call esi
test eax, eax
jne 0x73e91fb9
mov ecx, dword [ebx + 0x4c]
call fcn.73e75280
mov eax, edi
push eax
call fcn.73de0647
add esp, 4
jmp 0x73e91374
mov ecx, dword [ebx + 0x23c]
add dword [ebp - 0x548], ecx
mov dword [ebp - 0x55c], ecx
lea esi, [edi + ecx]
mov dword [ebp - 0x560], esi
cmp ecx, 4
jb 0x73e91ffc
movzx eax, word [ebx + 0x58]
mov edx, eax
mov dword [ebp - 0x54c], edx
cmp word [edi], ax
jne 0x73e91ffc
movzx edi, word [edi + 2]
test dx, dx
jne 0x73e92018
test di, di
je 0x73e9230c
mov ecx, dword [ebx + 0x4c]
call fcn.73e750a0
mov eax, dword [ebp - 0x554]
push eax
call fcn.73de0647
add esp, 4
jmp 0x73e91374
movzx edi, dx
mov edx, dword [ebp - 0x554]
add edx, 4
lea eax, [edi + edi]
lea esi, [edx + eax]
mov dword [ebp - 0x5a0], esi
lea eax, [edx + eax*2]
mov dword [ebp - 0x584], eax
cmp edx, esi
jae 0x73e91ffc
cmp esi, eax
jae 0x73e91ffc
xor esi, esi
xor edx, edx
cmp si, word [ebp - 0x54c]
jae 0x73e9206d
mov ecx, dword [ebp - 0x5a0]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
add edx, eax
sub edi, 1
jne 0x73e92054
mov eax, dword [ebp - 0x584]
mov ecx, dword [ebp - 0x55c]
lea edx, [eax + edx*4]
lea eax, [edx + 1]
mov dword [ebp - 0x57c], edx
cmp dword [ebp - 0x584], eax
jae 0x73e91ffc
mov eax, dword [ebp - 0x554]
sub eax, edx
add eax, ecx
je 0x73e920bd
lea ecx, [ebx + 0x13c]
push eax
call fcn.73e7e380
test eax, eax
jne 0x73e920bd
mov ecx, dword [ebx + 0x4c]
call fcn.73e75250
mov eax, dword [ebp - 0x554]
push eax
call fcn.73de0647
add esp, 4
jmp 0x73e91374
movzx eax, word [ebx + 0x58]
xor edi, edi
xor edx, edx
mov dword [ebp - 0x558], esi
cmp di, ax
mov dword [ebp - 0x564], edx
jae 0x73e9230c
mov ecx, dword [ebp - 0x5a0]
movzx edi, dx
lea ecx, [ecx + edi*2]
mov dword [ebp - 0x54c], ecx
movzx ecx, word [ecx]
movzx esi, cx
mov dword [ebp - 0x55c], esi
mov esi, dword [ebp - 0x560]
mov dword [ebp - 0x574], ecx
cmp dx, ax
jae 0x73e92004
mov eax, dword [ebx + 0x15c]
mov edi, dword [eax + edi*4]
test edi, edi
je 0x73e92004
cmp cx, word [edi + 0x30]
jbe 0x73e9217a
mov eax, dword [edi + 0x34]
test eax, eax
je 0x73e9213a
push eax
call fcn.73de0647
mov ecx, dword [ebp - 0x574]
add esp, 4
movzx eax, cx
mov edx, 4
xor ecx, ecx
mov dword [ebp - 0x55c], eax
mul edx
push 0x73dbf874
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.73de06fd
add esp, 8
mov dword [edi + 0x34], eax
test eax, eax
je 0x73e920a1
mov ecx, dword [ebp - 0x574]
mov eax, dword [ebp - 0x55c]
jmp 0x73e92183
mov eax, dword [ebp - 0x55c]
movzx eax, ax
shl eax, 2
push eax
push 0
push dword [edi + 0x34]
mov word [edi + 0x30], cx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov ecx, dword [ebp - 0x54c]
xor eax, eax
xor edx, edx
mov dword [ebp - 0x574], eax
add esp, 0xc
movzx ecx, word [ecx]
cmp dx, cx
jae 0x73e922ee
jmp 0x73e921c0
mov ecx, dword [ebp - 0x584]
movzx eax, ax
add eax, dword [ebp - 0x558]
mov eax, dword [ecx + eax*4]
add eax, dword [ebp - 0x57c]
mov dword [ebp - 0x55c], eax
cmp dword [ebp - 0x57c], eax
ja 0x73e91ffc
cmp eax, esi
jae 0x73e91ffc
mov edi, dword [ebx + 0x4c]
mov eax, dword [edi]
mov esi, dword [eax + 0x5c]
mov ecx, esi
call dword [0x73f59474]
mov ecx, edi
call esi
mov ecx, dword [ebp - 0x55c]
test eax, eax
jne 0x73e92294
mov edx, dword [ebp - 0x560]
cmp ecx, edx
jae 0x73e91ffc
movzx eax, byte [ecx]
add eax, ecx
cmp eax, edx
jae 0x73e91ffc
movzx esi, byte [ecx]
lea eax, [ecx + 1]
push esi
push eax
lea eax, [ebp - 0x104]
push eax
lea edi, [esi + 1]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
push 0x400
lea eax, [ebp - 0x504]
mov byte [ebp + esi - 0x104], 0
push eax
lea eax, [ebp - 0x104]
push edi
push eax
call fcn.73e8a8f0
add esp, 0x1c
lea eax, [ebp - 0x504]
mov ecx, ebx
push eax
push dword [ebp - 0x574]
push dword [ebp - 0x564]
call fcn.73e8e3d0
test eax, eax
je 0x73e92004
mov esi, dword [ebp - 0x560]
jmp 0x73e922cf
mov esi, dword [ebp - 0x560]
mov eax, ecx
cmp eax, esi
jae 0x73e91ffc
cmp byte [eax], 0
je 0x73e922b3
inc eax
cmp eax, esi
jb 0x73e922a4
jmp 0x73e91ffc
push ecx
push dword [ebp - 0x574]
mov ecx, ebx
push dword [ebp - 0x564]
call fcn.73e8e3d0
test eax, eax
je 0x73e92004
mov ecx, dword [ebp - 0x54c]
mov eax, dword [ebp - 0x574]
inc eax
mov dword [ebp - 0x574], eax
movzx ecx, word [ecx]
cmp ax, cx
jb 0x73e921c0
mov edx, dword [ebp - 0x564]
movzx eax, cx
inc edx
add dword [ebp - 0x558], eax
movzx eax, word [ebx + 0x58]
mov ecx, eax
cmp dx, ax
jmp 0x73e920ce
cmp dword [ebx + 0x408], 0
jne 0x73e92408
mov ecx, dword [ebx + 0x358]
lea esi, [ebx + 0x358]
lea eax, [esi + 4]
lea edi, [esi + 8]
test ecx, ecx
je 0x73e9233b
push ecx
call fcn.73de0647
add esp, 4
lea eax, [esi + 4]
mov ecx, esi
mov dword [ebp - 0x54c], edi
mov dword [eax], 0
push 0x73dbf874
push 1
mov dword [ecx], 0
mov dword [ebp - 0x558], eax
mov dword [edi], 0
call fcn.73de06fd
mov ecx, dword [ebp - 0x558]
add esp, 8
test eax, eax
jne 0x73e9237a
mov dword [ecx], eax
mov dword [esi], eax
jmp 0x73e923a9
mov edx, dword [esi]
mov dword [esi], eax
mov dword [ecx], eax
cmp edx, eax
je 0x73e9239d
mov edi, dword [esi + 0xc]
test edi, edi
je 0x73e9239d
push eax
push edx
push dword [esi + 0x10]
mov ecx, edi
call dword [0x73f59474]
call edi
add esp, 0xc
mov eax, dword [ebp - 0x54c]
mov dword [eax], 1
push 0
lea ecx, [esi + 0x40]
call fcn.73df3f90
mov eax, dword [esi + 0x40]
test eax, eax
je 0x73e923d1
push eax
call fcn.73de0647
add esp, 4
mov dword [esi + 0x40], 0
mov dword [esi + 0x48], 0
push 0
lea ecx, [esi + 0x4c]
call fcn.73df3f90
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x73e923f9
push eax
call fcn.73de0647
add esp, 4
mov dword [esi + 0x4c], 0
mov dword [esi + 0x54], 0
lea ecx, [esi + 0x70]
call fcn.73e8e760
mov ecx, esi
call fcn.73e78120
push dword [ebp - 0x554]
call fcn.73de0647
add esp, 4
mov ecx, dword [ebx + 0x240]
mov esi, dword [ebp - 0x56c]
mov edx, dword [ebp - 0x548]
test ecx, ecx
jle 0x73e92440
mov eax, esi
sub eax, edx
cmp eax, ecx
jl 0x73e9136c
add edx, ecx
mov dword [ebp - 0x548], edx
mov ecx, dword [ebx + 0x24c]
lea edi, [ebx + 0x24c]
test ecx, ecx
jle 0x73e926cc
mov eax, esi
sub eax, edx
cmp eax, ecx
jl 0x73e9136c
cmp ecx, 0x7fffffff
ja 0x73e91cb0
push 0x73dbf874
push ecx
call fcn.73de06fd
add esp, 8
mov dword [ebp - 0x584], eax
test eax, eax
je 0x73e91cb0
push 0
push 0
push eax
call fcn.73e73e50
push 0
call fcn.73de0647
mov eax, dword [ebp - 0x570]
add esp, 0x10
mov eax, dword [eax]
push edi
mov edi, dword [ebp - 0x584]
push edi
push dword [ebp - 0x548]
mov esi, dword [eax + 0x14]
mov ecx, esi
push 3
call dword [0x73f59474]
mov ecx, dword [ebp - 0x570]
call esi
test eax, eax
jne 0x73e924e1
mov ecx, dword [ebx + 0x4c]
call fcn.73e75280
push edi
call fcn.73de0647
add esp, 4
jmp 0x73e91374
mov eax, dword [ebx + 0x24c]
lea esi, [ebx + 0x2a8]
add dword [ebp - 0x548], eax
lea ecx, [esi + 0x18]
mov dword [ebp - 0x54c], eax
mov eax, dword [esi]
mov dword [esi + 4], eax
call fcn.73e75a80
push 0
lea ecx, [esi + 0x40]
mov dword [esi + 0x6c], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x64], 0
mov byte [esi + 0x61], 0
mov byte [esi + 0x63], 1
call fcn.73df3f90
mov edx, dword [ebp - 0x54c]
cmp edx, 8
jb 0x73e926be
mov byte [esi + 0x60], 0
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x550], eax
cmp eax, 0xeffeeffe
jne 0x73e92581
test ecx, ecx
je 0x73e92581
cmp ecx, 2
ja 0x73e926be
cmp ecx, dword [esi + 0xac]
jae 0x73e92573
add edi, 8
mov byte [esi + 0x60], 1
sub edx, 8
jmp 0x73e92585
add edi, 8
mov dword [esi + 0xac], ecx
sub edx, 8
jmp 0x73e92585
mov byte [esi + 0x60], 1
lea eax, [edx + edi]
mov dword [ebp - 0x57c], eax
mov eax, dword [esi + 4]
sub eax, dword [esi]
jne 0x73e926be
cmp edx, 4
jb 0x73e926be
mov ecx, dword [edi]
lea eax, [edx - 4]
add edi, 4
mov dword [ebp - 0x558], ecx
cmp ecx, eax
jg 0x73e926be
test ecx, ecx
js 0x73e926be
test edi, edi
je 0x73e926be
mov eax, dword [esi + 8]
sub eax, dword [esi + 4]
add eax, dword [esi]
cmp ecx, eax
jle 0x73e925ea
push ecx
mov ecx, esi
call fcn.73e73870
test eax, eax
je 0x73e926be
mov ecx, dword [ebp - 0x558]
mov edx, dword [esi + 4]
lea eax, [esi + 4]
mov dword [ebp - 0x5a0], edx
add edx, ecx
mov dword [ebp - 0x54c], edx
mov edx, dword [esi]
mov dword [ebp - 0x55c], esi
test edx, edx
jne 0x73e92616
mov ecx, dword [ebp - 0x558]
mov dword [ebp - 0x54c], edx
mov esi, dword [ebp - 0x54c]
mov dword [eax], esi
mov eax, dword [ebp - 0x55c]
push ecx
push edi
push dword [ebp - 0x5a0]
mov dword [eax], edx
call fcn.73e73e50
add edi, dword [ebp - 0x558]
lea esi, [ebx + 0x2a8]
mov eax, dword [ebp - 0x57c]
add esp, 0xc
sub eax, edi
cmp eax, 4
jb 0x73e926be
mov ecx, dword [edi]
add edi, 4
mov dword [ebp - 0x54c], ecx
cmp ecx, 0x20000000
ja 0x73e926be
shl ecx, 2
add eax, 0xfffffffc
cmp eax, ecx
jb 0x73e926be
push dword [ebp - 0x54c]
lea ecx, [esi + 0x4c]
call fcn.73df3f90
test eax, eax
je 0x73e926be
mov eax, dword [esi + 0x50]
shl eax, 2
push eax
push edi
push dword [esi + 0x4c]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov eax, dword [esi + 0x50]
add esp, 0xc
lea ecx, [edi + eax*4]
mov eax, dword [ebp - 0x57c]
sub eax, ecx
cmp eax, 4
jb 0x73e926be
mov eax, dword [ecx]
mov ecx, dword [esi + 0x50]
mov dword [esi + 0x58], eax
cmp eax, ecx
jae 0x73e926be
cmp byte [esi + 0x60], 0
je 0x73e926be
push ecx
mov ecx, esi
call fcn.73e77c20
push dword [ebp - 0x584]
call fcn.73de0647
add esp, 4
mov eax, dword [ebx + 0x248]
test eax, eax
jle 0x73e92745
mov edx, dword [ebp - 0x56c]
mov ecx, dword [ebp - 0x548]
sub edx, ecx
cmp edx, eax
jl 0x73e9136c
cmp eax, 0x18
jl 0x73e926f6
mov eax, 0x18
mov edi, dword [ebp - 0x570]
mov dword [ebp - 0x54c], eax
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0x54c]
push eax
lea eax, [ebx + 0x258]
push eax
push ecx
push 3
mov ecx, esi
call dword [0x73f59474]
mov ecx, edi
call esi
test eax, eax
jne 0x73e9274b
mov ecx, dword [ebx + 0x4c]
call fcn.73e75280
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.73ddffa0
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp - 0x570]
cmp dword [ebp - 0x578], 0x1310977
mov esi, 0xffff
mov ecx, dword [ebp + 8]
sbb eax, eax
neg eax
mov dword [ebx + 0xb0], eax
test ecx, ecx
je 0x73e92849
mov ecx, ebx
call fcn.73e8e950
test eax, eax
je 0x73e91374
mov eax, dword [ebx + 0x4c]
test byte [eax + 0x2e1], 2
je 0x73e92794
mov dword [ebx + 0xac], 1
push 0x40
lea eax, [ebp - 0x544]
mov dword [ebp - 0x578], 3
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov eax, dword [edi]
add esp, 0xc
mov word [ebp - 0x538], si
mov word [ebp - 0x534], si
mov word [ebp - 0x530], si
mov esi, dword [eax + 0x20]
lea eax, [ebp - 0x578]
push eax
push 0x40
lea eax, [ebp - 0x544]
mov dword [ebp - 0x544], 0xffffffff
push eax
push 3
mov ecx, esi
mov dword [ebp - 0x540], 0x1310977
call dword [0x73f59474]
mov ecx, edi
call esi
test eax, eax
je 0x73e9281d
mov eax, dword [edi]
mov esi, dword [eax + 0x30]
lea eax, [ebp - 0x578]
push eax
mov ecx, esi
call dword [0x73f59474]
mov ecx, edi
call esi
test eax, eax
jne 0x73e92849
mov eax, dword [ebp - 0x578]
mov ecx, dword [ebx + 0x4c]
push 0
push dword [eax*4 + 0x73db7cb0]
call fcn.73e75220
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.73ddffa0
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx + 0x408], 0
je 0x73e92971
mov eax, dword [ebx]
mov esi, dword [eax + 0x14]
lea eax, [ebp - 0x5a4]
push eax
mov ecx, esi
call dword [0x73f59474]
mov ecx, ebx
call esi
test eax, eax
je 0x73e91374
mov eax, dword [ebx]
mov esi, dword [eax + 0x18]
lea eax, [ebp - 0x54c]
push eax
mov ecx, esi
call dword [0x73f59474]
mov ecx, ebx
call esi
test eax, eax
je 0x73e91374
mov eax, dword [ebp - 0x5a4]
mov ecx, ebx
mov dword [ebx + 0x160], eax
mov eax, dword [ebp - 0x54c]
mov dword [ebx + 0x164], eax
call fcn.73e8a410
test eax, eax
je 0x73e91374
mov ecx, ebx
call fcn.73e8a3c0
xor eax, eax
lea esi, [ebx + 0x124]
mov dword [ebp - 0x5a8], eax
mov eax, dword [esi + 8]
sub eax, dword [esi + 4]
add eax, dword [esi]
cmp eax, 4
jge 0x73e928f0
push 4
mov ecx, esi
call fcn.73e73870
test eax, eax
je 0x73e913d8
mov edx, dword [esi + 4]
mov eax, dword [esi]
lea ecx, [edx + 4]
test eax, eax
jne 0x73e928fe
xor ecx, ecx
mov dword [esi + 4], ecx
mov dword [esi], eax
lea eax, [ebp - 0x5a8]
push 4
push eax
push edx
call fcn.73e73e50
mov eax, 0xfffe
add esp, 0xc
and word [ebx + 0x250], ax
mov eax, dword [ebx + 0x4c]
test byte [eax + 0x2e0], 8
je 0x73e92962
mov ecx, ebx
call fcn.73e8a410
push 0xffffc
lea ecx, [ebx + 0x4cc]
call fcn.73e76140
mov dword [ebx + 0x4d8], eax
test eax, eax
je 0x73e913d8
push 0xffffc
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, ebx
call fcn.73e92a20
test eax, eax
je 0x73e91374
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.73ddffa0
mov esp, ebp
pop ebp
ret 4