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

Disassembly:
sub esp, 0x18
mov ecx, dword [esp + 0x20]
push ebx
push ebp
push esi
movzx eax, byte [ecx + 5]
movzx ebp, word [ecx]
movzx esi, word [ecx + 2]
push edi
movzx ebx, word [eax*2 + str.o__f]
mov al, byte [ecx + 4]
mov edi, dword [esp + 0x2c]
and al, 0x1f
mov byte [esp + 0x12], al
mov edx, dword [edi + 0x48]
cmp al, 0xe
jne 0x443236
mov eax, ebx
mov ecx, ebp
and eax, 0x4000
cmove ecx, esi
test eax, eax
mov dword [esp + 0x24], ecx
cmove esi, ebp
mov ebp, ebx
xor ebp, 0x6050
test eax, eax
cmove ebp, ebx
movzx eax, byte [edx + esi*8 + 6]
mov dword [esp + 0x30], eax
test al, al
jns 0x443188
push 0xff00
push esi
push edi
call fcn.0044d3c0
add esp, 0xc
mov dword [esp + 0x30], eax
mov ecx, dword [edi + 0x60]
mov ebx, dword [edi + 0x40]
btr ecx, eax
mov eax, ebp
mov dword [edi + 0x60], ecx
shr eax, 4
push eax
push edi
call fcn.00445b00
add esp, 8
test ebp, 0x2000
je 0x443207
test ebp, 0x1000
jne 0x4431c0
push 0xa
push edi
call fcn.00445b00
add esp, 8
jmp 0x443207
mov eax, dword [edi + 0x40]
cmp ebx, dword [edi + 0xcc]
je 0x4431dc
sub bl, al
mov byte [eax - 2], 0x7a
mov byte [eax - 1], bl
add eax, 0xfffffffe
mov dword [edi + 0x40], eax
jmp 0x443207
cmp dword [edi + 0xd4], 0
mov dword [edi + 0x6c], 2
je 0x4431fb
mov byte [eax - 1], 0
add eax, 0xfffffffe
mov byte [eax], 0x7a
mov dword [edi + 0x40], eax
jmp 0x443207
push eax
push 0xa
push edi
call fcn.0044c1d0
add esp, 0xc
mov esi, dword [esp + 0x30]
mov eax, 0xff00
btr eax, esi
push eax
push dword [esp + 0x28]
push edi
call fcn.00444b20
push eax
push esi
push 0x2e0f66fc
push edi
call fcn.0044c410
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov al, byte [edx + ebp*8 + 5]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], 0
cmp ebp, 0x8000
jb 0x443272
cmp esi, 0x8000
jb 0x4432a2
cmp al, 0x42
je 0x443272
cmp al, 0x43
je 0x443272
cmp al, 0x44
je 0x443272
cmp al, 0x45
je 0x443272
cmp al, 0x46
je 0x443272
cmp al, 0x47
je 0x443272
cmp al, 0x48
jne 0x443296
mov eax, ebx
and eax, 0xc
cmp al, 0xc
jne 0x443280
xor ebx, 0x53
jmp 0x44328b
mov eax, ebx
and al, 0xa
cmp al, 2
jne 0x44328b
xor ebx, 0x55
movzx ebp, word [ecx + 2]
movzx esi, word [ecx]
mov dword [esp + 0x24], ebp
cmp esi, 0x8000
jae 0x443676
cmp byte [edx + esi*8 + 5], 0x1d
lea eax, [edx + esi*8]
je 0x4432b4
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
jmp 0x4432dd
mov ecx, dword [eax + 8]
mov eax, ecx
cdq
mov dword [esp + 0x20], edx
mov edx, dword [edi + 0x48]
mov dword [esp + 0x1c], ecx
cmp dword [edx + esi*8 + 8], eax
jne 0x443676
mov eax, dword [esp + 0x20]
cmp dword [edx + esi*8 + 0xc], eax
jne 0x443676
mov dword [esp + 0x18], edx
lea esi, [ebp*8]
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x44348c
mov eax, ebx
and al, 0xa
cmp al, 2
je 0x44348c
cmp byte [esi + edx + 5], 0x21
lea ebp, [ecx + 1]
jne 0x44348e
lea eax, [edx + 8]
add eax, esi
cmp eax, dword [esp + 0x30]
jne 0x44348e
cmp byte [esi + edx + 6], cl
jge 0x44348e
cmp byte [esi + edx + 7], cl
jne 0x44348e
mov eax, dword [esp + 0x14]
mov esi, 0xef
mov dword [esp + 0x24], 0x80
movzx ebp, word [eax + edx + 2]
lea eax, [esp + 0x20]
push eax
push ebp
push edi
call fcn.00448330
add esp, 0xc
test eax, eax
jne 0x443376
push esi
push ebp
push edi
call fcn.0044d390
mov edx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x24], eax
btr esi, eax
jmp 0x4433ba
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x48]
movzx eax, word [edx + eax]
lea ebp, [ecx + eax*8]
mov al, byte [ebp + 5]
cmp al, 0x42
je 0x4433a7
cmp al, 0x43
je 0x4433a7
cmp al, 0x44
je 0x4433a7
cmp al, 0x45
je 0x4433a7
cmp al, 0x46
je 0x4433a7
cmp al, 0x47
je 0x4433a7
cmp al, 0x48
jne 0x4433ba
mov cl, byte [ebp + 4]
mov al, cl
mov byte [esp + 0x30], cl
and al, 0x1f
cmp al, 0xf
je 0x4433d7
cmp al, 0x10
je 0x4433d7
mov eax, dword [esp + 0x18]
dec dword [edi + 0x78]
push esi
movzx eax, word [edx + eax]
push eax
push edi
call fcn.00444b20
add esp, 0xc
mov esi, eax
inc dword [edi + 0x78]
jmp 0x44340b
mov eax, dword [esp + 0x18]
and cl, 0xf3
or cl, 0x13
mov byte [ebp + 4], cl
dec dword [edi + 0x78]
movzx eax, word [edx + eax]
push 0xef
push eax
push edi
call fcn.00444b20
inc dword [edi + 0x78]
mov esi, eax
mov al, byte [esp + 0x3c]
add esp, 0xc
mov byte [ebp + 4], al
cmp esi, 0x10
je 0x44345f
push ebx
push edi
call fcn.00445b00
mov eax, dword [esp + 0x2c]
add esp, 8
test al, al
jns 0x443446
mov ecx, dword [edi + 0x40]
mov eax, dword [esp + 0x20]
push esi
mov dword [ecx - 4], eax
xor eax, eax
add dword [edi + 0x40], 0xfffffffc
mov ecx, 0xf70000fe
push eax
push ecx
push edi
call fcn.0044c410
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push esi
push eax
mov ecx, 0x850000fe
push ecx
push edi
call fcn.0044c410
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push ebx
push edi
call fcn.00445b00
dec dword [edi + 0x40]
mov ecx, dword [edi + 0x40]
mov al, byte [esp + 0x28]
push 0x10
push 0
push 0xf60000fe
push edi
mov byte [ecx], al
call fcn.0044c410
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
xor ebp, ebp
mov al, byte [esi + edx + 5]
mov esi, 0xf
cmp al, 0x42
je 0x4434b3
cmp al, 0x43
je 0x4434b3
cmp al, 0x44
je 0x4434b3
cmp al, 0x45
je 0x4434b3
cmp al, 0x46
je 0x4434b3
cmp al, 0x47
je 0x4434b3
cmp al, 0x48
jne 0x443512
mov eax, dword [esp + 0x14]
mov al, byte [eax + edx + 4]
mov dl, al
mov byte [esp + 0x13], al
and dl, 0x1f
mov byte [esp + 0x11], dl
cmp dl, 0x10
jne 0x4434de
movzx ecx, cl
cmp dword [esp + 0x1c], ecx
je 0x44359d
mov ecx, dword [esp + 0x1c]
cmp dl, 0xf
je 0x4434e8
cmp dl, 0x11
jne 0x4434f5
movsx ecx, cl
cmp dword [esp + 0x1c], ecx
je 0x44359d
cmp dl, 0x12
jne 0x443512
mov edx, dword [esp + 0x1c]
movzx ecx, dx
cmp edx, ecx
jne 0x443512
movsx cx, dl
cmp dx, cx
je 0x44359d
cmp byte [esp + 0x12], 0x10
mov eax, 0xef
cmove eax, esi
push eax
push dword [esp + 0x28]
push edi
call fcn.00444b20
add esp, 0xc
mov esi, eax
push ebx
push edi
call fcn.00445b00
add esp, 8
test ebp, ebp
je 0x44365b
cmp esi, 0x10
je 0x44365b
mov ebx, dword [esp + 0x30]
mov edx, 0x850000fe
mov al, byte [ebx + 4]
and al, 0x1f
cmp al, 0x10
jne 0x44362b
mov ecx, esi
mov eax, 0xf
shr eax, cl
mov edx, 0x840000fe
test al, 1
jne 0x44362b
mov eax, dword [edi + 0x40]
push esi
push 0
push 0xf70000fe
mov dword [eax - 4], 0xff
add dword [edi + 0x40], 0xfffffffc
push edi
call fcn.0044c410
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov ecx, dword [esp + 0x14]
and al, 0xf3
mov edx, dword [esp + 0x18]
or al, 0x13
push 0xef
push dword [esp + 0x28]
push edi
mov byte [ecx + edx + 4], al
call fcn.00444b20
mov ecx, dword [esp + 0x20]
mov esi, eax
mov edx, dword [esp + 0x24]
add esp, 0xc
mov al, byte [esp + 0x13]
mov byte [ecx + edx + 4], al
cmp esi, 0x10
jne 0x44352f
mov al, byte [esp + 0x11]
cmp al, 0x10
je 0x4435e6
cmp al, 0x12
jne 0x4435e9
shr ebx, 4
push ebx
push edi
call fcn.00445b00
dec dword [edi + 0x40]
add esp, 8
mov eax, dword [edi + 0x40]
mov ecx, dword [esp + 0x1c]
mov byte [eax], cl
mov al, byte [esp + 0x11]
cmp al, 0xf
je 0x443610
cmp al, 0x10
mov eax, 0x836600fd
jne 0x443615
mov eax, 0x800000fe
push 0x10
push 7
push eax
push edi
call fcn.0044c410
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push esi
push esi
push edx
push edi
call fcn.0044c690
mov eax, dword [esp + 0x24]
add esp, 0x10
add eax, 8
add eax, dword [esp + 0x18]
cmp eax, ebx
jne 0x4436cb
mov eax, dword [edi + 0x40]
mov dword [edi + 0xd0], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push dword [esp + 0x1c]
push esi
push 0x838107
push edi
call fcn.0044c0b0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
movzx eax, byte [edx + ebp*8 + 6]
mov dword [esp + 0x30], eax
test al, al
jns 0x443696
push 0xef
push ebp
push edi
call fcn.0044d3c0
add esp, 0xc
mov dword [esp + 0x30], eax
mov ecx, dword [edi + 0x60]
btr ecx, eax
mov dword [edi + 0x60], ecx
mov ecx, 0xef
btr ecx, eax
push ecx
push esi
push edi
call fcn.00444b20
push ebx
push edi
mov esi, eax
call fcn.00445b00
push esi
push dword [esp + 0x48]
push 0x3b0000fe
push edi
call fcn.0044c410
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret