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

Disassembly:
sub esp, 0x60
push ebx
push ebp
mov ebp, dword [esp + 0x6c]
push esi
push edi
xor esi, esi
mov al, byte [ebp + 0x18e9]
mov cl, byte [ebp + 0x18ee]
push ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x40], esi
mov byte [esp + 0x30], al
mov byte [esp + 0x78], cl
mov dword [esp + 0x28], esi
mov dword [esp + 0x3c], esi
call fcn.00408c90
mov edx, dword [ebp + 0x2508]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x2c], eax
add esp, 4
test dword [edx + 0x1c], 0x4000000
je 0x43866c
push ebx
call sub.oranls9.dll_lxsulen
add esp, 4
jmp 0x43867a
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, ecx
mov dword [esp + 0x18], eax
add eax, 2
push eax
push ebp
call fcn.00438fb0
add esp, 8
cmp eax, esi
mov dword [esp + 0x34], eax
jne 0x4386ab
push esi
push 0x167
push 1
push 2
push ebp
call fcn.00409560
add esp, 0x14
jmp 0x438f58
mov edi, dword [esp + 0x18]
lea eax, [edi + 1]
push eax
push ebp
call fcn.00408bd0
mov esi, eax
add esp, 8
test esi, esi
je 0x438f46
mov ecx, dword [ebp + 0x250c]
mov edx, dword [ebp + 0x2508]
push ecx
push edx
push ebx
push esi
call sub.oranls9.dll_lxscop
add esp, 0x10
mov dword [esp + 0x78], esi
mov al, byte [esp + 0x2c]
test al, al
je 0x43874b
mov ecx, dword [ebp + 0x47a0]
lea eax, [ebp + 0x2464]
cmp eax, ecx
jne 0x43874b
mov ecx, dword [ebp + 0x2508]
test dword [ecx + 0x1c], 0x4000000
je 0x438718
push esi
call sub.oranls9.dll_lxsulen
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x438728
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x2c]
and edx, 0xff
push edx
push 0xffffffffffffffff
push esi
push ebp
call fcn.00412aa0
add esp, 0x10
test eax, eax
je 0x43874f
sub eax, esi
mov dword [esp + 0x14], eax
jmp 0x43874f
mov dword [esp + 0x14], edi
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x78]
mov edx, ecx
mov eax, dword [ebx]
mov edi, eax
mov dword [esp + 0x20], eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x1c], eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x74]
mov edi, edx
test cl, cl
mov byte [edi + eax], 0
mov dword [ebp + 0x18b8], 0
je 0x4389c1
mov ecx, dword [ebp + 0x2508]
mov edx, dword [ecx + 0x1c]
test dh, 2
jne 0x438967
mov eax, dword [ebp + 0x250c]
mov edx, dword [esp + 0x20]
push eax
push ecx
mov ecx, edi
push 0x10001000
push ecx
push edx
call sub.oranls9.dll_lxsCntChar
mov edi, eax
add esp, 0x14
test edi, edi
mov dword [esp + 0x30], edi
je 0x43895b
mov eax, dword [ebp + 0x250c]
mov ecx, dword [ebp + 0x2508]
push 0
push eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
push ecx
call sub.oranls9.dll_lxmopen
add esp, 0x18
cmp edi, 1
jbe 0x43883c
mov ecx, dword [esp + 0x50]
lea esi, [edi - 1]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
sub edx, ebx
cmp edx, eax
jae 0x438833
test byte [ecx + 0x1c], 0x10
jne 0x438833
mov eax, dword [ebp + 0x250c]
lea ecx, [esp + 0x44]
push eax
push ecx
call sub.oranls9.dll_lxmfwdx
mov ecx, dword [esp + 0x58]
add esp, 8
jmp 0x438837
inc dword [esp + 0x4c]
dec esi
jne 0x438801
jmp 0x438840
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x44]
test edx, edx
jne 0x438897
test dword [ecx + 0x1c], 0x4000000
jne 0x4388cd
mov eax, dword [esp + 0x48]
test eax, eax
je 0x438866
mov esi, dword [esp + 0x58]
xor eax, eax
test esi, esi
sete al
jmp 0x438893
mov esi, dword [ebp + 0x250c]
mov edi, dword [esp + 0x4c]
xor eax, eax
xor ebx, ebx
mov ax, word [ecx + 0x20]
mov esi, dword [esi + 0xc]
mov bl, byte [edi]
mov edi, dword [esp + 0x30]
mov eax, dword [esi + eax*4]
mov esi, dword [ecx]
lea eax, [eax + ebx*2]
mov al, byte [eax + esi]
and al, 3
neg al
sbb eax, eax
inc eax
test eax, eax
je 0x4388cd
mov esi, dword [esp + 0x4c]
mov bl, byte [esp + 0x74]
mov al, byte [esi]
cmp al, bl
je 0x438903
test edx, edx
je 0x4388cd
mov esi, dword [ebp + 0x250c]
xor edx, edx
mov dx, word [ecx + 0x20]
and eax, 0xff
mov esi, dword [esi + 0xc]
mov edx, dword [esi + edx*4]
lea eax, [edx + eax*2]
mov edx, dword [ecx]
mov al, byte [eax + edx]
and eax, 0x40
jmp 0x4388e5
mov eax, dword [ebp + 0x250c]
lea ecx, [esp + 0x44]
push eax
push ecx
call sub.oranls9.dll_lxmspax
mov ecx, dword [esp + 0x58]
add esp, 8
test eax, eax
je 0x43891f
dec edi
mov dword [esp + 0x30], edi
jne 0x4387ce
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
sub edi, eax
jmp 0x4389b5
mov byte [esi], 0
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
mov dword [ebp + 0x18b8], 1
sub edi, eax
jmp 0x4389b5
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
sub edx, esi
cmp edx, eax
jae 0x438957
test byte [ecx + 0x1c], 0x10
jne 0x438957
mov eax, dword [ebp + 0x250c]
lea ecx, [esp + 0x44]
push eax
push ecx
call sub.oranls9.dll_lxmfwdx
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
add esp, 8
sub edi, eax
jmp 0x4389b5
inc dword [esp + 0x4c]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
sub edi, eax
jmp 0x4389b5
test edi, edi
lea esi, [edi + eax - 1]
je 0x438d93
mov al, byte [esi]
mov dl, byte [esp + 0x74]
cmp al, dl
je 0x4389a8
mov ebx, dword [ebp + 0x250c]
xor edx, edx
mov dx, word [ecx + 0x20]
and eax, 0xff
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebx + edx*4]
lea eax, [edx + eax*2]
mov edx, dword [ecx]
test byte [eax + edx], 0x40
je 0x4389b5
dec esi
dec edi
jne 0x438973
jmp 0x438d93
mov byte [esi], 0
mov dword [ebp + 0x18b8], 1
test edi, edi
je 0x438d93
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
push eax
push ebp
call fcn.00411ac0
mov edx, dword [ebp + 0x480c]
lea ecx, [esp + 0x44]
mov esi, eax
push ecx
push esi
push edx
push ebp
call fcn.00407c20
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jl 0x438dd4
mov ecx, dword [ebp + 0x480c]
lea eax, [esp + 0x10]
push eax
push 0
push 0
push 3
push ecx
push ebp
mov dword [ebp + 0x25d8], 0
call fcn.00407ba0
add esp, 0x18
test eax, eax
je 0x438f14
mov edx, dword [ebp + 0x250c]
mov eax, dword [ebp + 0x2508]
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [ebp + 0x480c]
push eax
push 0x10000000
push 0xffffffffffffffff
push 0x46affc
push 0xffffffffffffffff
push ecx
push edx
push ebp
call fcn.00407fe0
add esp, 0xc
push eax
call sub.oranls9.dll_lxsCmpStr
add esp, 0x1c
test eax, eax
je 0x438a99
mov eax, dword [ebp + 0x250c]
mov ecx, dword [ebp + 0x2508]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [ebp + 0x480c]
push ecx
push 0x10000000
push 0xffffffffffffffff
push 0x46b000
push 0xffffffffffffffff
push edx
push eax
push ebp
call fcn.00407fe0
add esp, 0xc
push eax
call sub.oranls9.dll_lxsCmpStr
add esp, 0x1c
test eax, eax
jne 0x438afa
mov ecx, dword [ebp + 0x2508]
mov dword [esp + 0x30], 0xffffffff
test dword [ecx + 0x1c], 0x4000000
je 0x438ac1
mov edx, dword [ebp + 0x2364]
push edx
call sub.oranls9.dll_lxsulen
add esp, 4
jmp 0x438ad3
mov edi, dword [ebp + 0x2364]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, ecx
mov edx, dword [ebp + 0x2364]
lea ecx, [esp + 0x30]
push ecx
push eax
mov eax, dword [ebp + 0x480c]
push edx
push 3
push eax
push ebp
call fcn.00407ba0
add esp, 0x18
test eax, eax
je 0x438f2d
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 0x480c]
push ecx
push edx
push ebp
call fcn.00407fa0
add esp, 0xc
test al, 4
je 0x438b1f
mov dword [ebp + 0x2504], 1
jmp 0x438b29
mov dword [ebp + 0x2504], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x480c]
push eax
push ecx
push ebp
call fcn.00407fa0
add esp, 0xc
test al, 8
je 0x438bd7
mov edx, dword [ebp + 0x2508]
test dword [edx + 0x1c], 0x4000000
je 0x438b60
push esi
call sub.oranls9.dll_lxsulen
add esp, 4
jmp 0x438b6e
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, ecx
lea ecx, [esp + 0x38]
lea edx, [esp + 0x40]
push ecx
mov ecx, dword [ebx + 0xc]
push edx
mov edx, dword [ebx + 8]
dec ecx
push ecx
push edx
push eax
push esi
push ebp
call fcn.00439310
mov ecx, dword [esp + 0x54]
add esp, 0x1c
test ecx, ecx
jne 0x438d93
test eax, eax
jne 0x438bc7
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x438bb0
push esi
push ebp
call fcn.00439250
jmp 0x438d90
push 0
push 1
push 0x7db
push ebp
call fcn.004157b0
add esp, 0x10
jmp 0x438d93
mov esi, dword [ebx + 8]
cdq
xor eax, edx
mov dword [esp + 0x1c], esi
sub eax, edx
mov byte [eax + esi], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x480c]
push eax
push ecx
push ebp
call fcn.00407fa0
add esp, 0xc
test al, 2
jne 0x438c52
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x480c]
mov edx, dword [esp + 0x3c]
push eax
push ecx
push ebp
add esi, edx
call fcn.00407fa0
add esp, 0xc
test al, 1
je 0x438c44
mov al, byte [esi]
test al, al
je 0x438c44
mov ecx, dword [ebp + 0x2508]
mov edi, dword [ebp + 0x250c]
xor edx, edx
and eax, 0xff
mov dx, word [ecx + 0x20]
mov edi, dword [edi + 0xc]
mov ecx, dword [ecx]
mov edx, dword [edi + edx*4]
lea eax, [edx + eax*2]
test byte [eax + ecx], 0x40
je 0x438c44
inc esi
mov dword [esp + 0x1c], esi
jmp 0x438c52
push esi
push ebp
call fcn.00411ac0
add esp, 8
mov dword [esp + 0x1c], eax
mov edx, dword [ebp + 0x2508]
test dword [edx + 0x1c], 0x4000000
je 0x438c80
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x480c]
push eax
push ecx
push ebp
call fcn.00407fe0
push eax
call sub.oranls9.dll_lxsulen
add esp, 0x10
mov ecx, eax
jmp 0x438ca1
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x480c]
push edx
push eax
push ebp
call fcn.00407fe0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x2f
jae 0x438cf9
mov ecx, dword [ebp + 0x2508]
test dword [ecx + 0x1c], 0x4000000
je 0x438cd4
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x480c]
push edx
push eax
push ebp
call fcn.00407fe0
push eax
call sub.oranls9.dll_lxsulen
add esp, 0x10
mov ebx, eax
jmp 0x438cfe
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 0x480c]
push ecx
push edx
push ebp
call fcn.00407fe0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
jmp 0x438cfe
mov ebx, 0x2f
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x480c]
push eax
push ecx
push ebp
lea edi, [ebp + 0x22cd]
call fcn.00407fe0
mov ecx, ebx
mov esi, eax
mov edx, ecx
add esp, 0xc
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [ebx + ebp + 0x22cd], 0
mov al, byte [ebp + 0x17f0]
test al, al
jne 0x438d60
mov eax, dword [ebp + 0x486c]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
push edx
push eax
call sub.oracore9.dll_lfiflu
add esp, 8
test eax, eax
je 0x438d60
push ebp
call fcn.00419d70
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x480c]
push eax
push ecx
push ebp
call fcn.00407d20
add esp, 0xc
test eax, eax
je 0x438d83
mov edx, dword [esp + 0x1c]
push edx
push ebp
call eax
jmp 0x438d90
mov eax, dword [ebp + 0x480c]
push eax
push ebp
call fcn.00407f20
add esp, 8
mov ecx, dword [ebp + 0x47ac]
cmp dword [ecx], 1
je 0x438e86
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
or edx, 0xffffffff
sub edx, edi
add eax, edx
test eax, eax
mov dword [esp + 0x18], eax
jle 0x438e86
mov eax, dword [esp + 0x78]
mov ecx, edi
mov edi, dword [esp + 0x18]
lea esi, [eax + ecx + 1]
mov dword [esp + 0x78], esi
jmp 0x4386e2
push esi
push ebp
call fcn.00411ac0
mov esi, eax
mov eax, dword [ebp + 0x17f4]
add esp, 8
test eax, eax
je 0x438e3a
cmp byte [esi], 0
je 0x438e08
push 0x353
push 0x352
push esi
push ebp
call fcn.00439180
add esp, 0x10
jmp 0x438ef5
mov dl, byte [ebp + 0x18ee]
push 0x353
lea eax, [esp + 0x7c]
push 0x352
push eax
push ebp
mov byte [esp + 0x88], dl
mov byte [esp + 0x89], 0
call fcn.00439180
add esp, 0x10
jmp 0x438ef5
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x24]
push edx
inc ecx
push esi
push ebp
mov dword [esp + 0x30], ecx
call fcn.004084b0
mov edi, eax
mov eax, dword [esp + 0x30]
add esp, 0xc
dec eax
mov dword [esp + 0x10], eax
mov al, byte [edi + esi]
cmp al, 0x2a
jne 0x438e69
mov byte [edi + esi], 0x20
inc edi
lea ebx, [edi + esi]
push ebx
push ebp
call fcn.00411ac0
mov cl, byte [eax]
add esp, 8
test cl, cl
jne 0x438ea7
push esi
push ebp
call fcn.00422e80
add esp, 8
mov eax, dword [esp + 0x28]
push eax
push ebp
call fcn.00408ca0
push ebp
call fcn.00438f80
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
test edi, edi
jle 0x438eeb
mov eax, dword [ebp + 0x2508]
mov edx, dword [ebp + 0x250c]
xor ecx, ecx
mov cx, word [eax + 0x20]
mov edx, dword [edx + 0xc]
mov edi, ecx
xor ecx, ecx
mov cl, byte [ebx]
mov edx, dword [edx + edi*4]
lea ecx, [edx + ecx*2]
mov edx, dword [eax]
test byte [ecx + edx], 0x40
je 0x438eeb
mov eax, dword [esp + 0x10]
inc eax
inc ebx
push eax
push ebx
push ebp
call fcn.0041c830
add esp, 0xc
test eax, eax
je 0x438f58
jmp 0x438e86
push esi
push ebp
call fcn.004390a0
add esp, 8
mov ecx, dword [esp + 0x28]
push ecx
push ebp
call fcn.00408ca0
push ebp
call fcn.00438f80
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x480c]
push 0
push edx
push eax
push ebp
call fcn.00407de0
add esp, 0x10
jmp 0x438f58
mov ecx, dword [esp + 0x30]
mov edx, dword [ebp + 0x480c]
push 0
push ecx
push edx
push ebp
call fcn.00407de0
add esp, 0x10
jmp 0x438f58
push edi
push 1
push 0x26
push 1
push 2
push ebp
call fcn.00409560
add esp, 0x18
mov ecx, dword [esp + 0x28]
push ecx
push ebp
call fcn.00408ca0
push ebp
call fcn.00438f80
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret