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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x10bc
call fcn.10048bf0
mov eax, dword [0x10067068]
xor eax, esp
mov dword [esp + 0x10b8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
xor esi, esi
push edi
mov edi, edx
or edx, 0xffffffff
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x1c], eax
cmp edi, esi
je 0x1003e000
mov dword [edi], esi
cmp ecx, esi
jne 0x1003d4fd
lea eax, [esi + 0x10]
jmp 0x1003dfc2
mov dword [ecx], esi
mov dword [esp + 0x48], 0x10055ac8
mov dword [esp + 0x4c], 0x10055bc8
mov dword [esp + 0x50], 0x10055cc8
mov dword [esp + 0x54], 0x10055e08
mov dword [esp + 0x9c], esi
cmp word [eax], 0x28
jne 0x1003da36
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp word [eax + ecx*2 + 2], 0x2a
jne 0x1003da36
mov edx, eax
mov eax, ecx
lea ebx, [edx + eax*2 + 4]
mov edi, 6
mov eax, ebx
mov ecx, str.UTF16_
movzx edx, word [eax]
movzx esi, byte [ecx]
dec edi
add eax, 2
inc ecx
cmp si, dx
jne 0x1003d57e
test edi, edi
jne 0x1003d558
add dword [esp + 0xc], 8
or dword [esp + 0x14], 0x800
jmp 0x1003da23
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003d59c
add dword [esp + 0xc], 8
or dword [esp + 0x14], 0x800
jmp 0x1003da23
mov edi, 4
mov ecx, ebx
mov esi, str.UTF_
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003d5ce
test edi, edi
jne 0x1003d5a8
add dword [esp + 0xc], 6
or dword [esp + 0x14], 0x800
jmp 0x1003da23
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003d5ec
add dword [esp + 0xc], 6
or dword [esp + 0x14], 0x800
jmp 0x1003da23
mov edi, 4
mov ecx, ebx
mov esi, str.UCP_
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003d61e
test edi, edi
jne 0x1003d5f8
add dword [esp + 0xc], 6
or dword [esp + 0x14], 0x20000000
jmp 0x1003da23
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003d63c
add dword [esp + 0xc], 6
or dword [esp + 0x14], 0x20000000
jmp 0x1003da23
mov edi, 0xd
mov ecx, ebx
mov esi, str.NO_START_OPT_
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003d66e
test edi, edi
jne 0x1003d648
add dword [esp + 0xc], 0xf
or dword [esp + 0x14], 0x4000000
jmp 0x1003da23
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003d68c
add dword [esp + 0xc], 0xf
or dword [esp + 0x14], 0x4000000
jmp 0x1003da23
mov edi, 0xc
mov ecx, ebx
mov esi, str.LIMIT_MATCH
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003d6ae
test edi, edi
jne 0x1003d698
jmp 0x1003d6be
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003d734
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
movzx eax, word [ebx + esi*2 + 0x1c]
add esi, 0xe
push eax
xor edi, edi
call dword [sym.imp.MSVCR100.dll_isdigit]
add esp, 4
test eax, eax
je 0x1003d707
mov edi, edi
cmp edi, 0x19999998
ja 0x1003d707
movzx edx, word [ebx + esi*2]
movzx eax, word [ebx + esi*2 + 2]
inc esi
lea ecx, [edi + edi*4]
push eax
lea edi, [edx + ecx*2 - 0x30]
call dword [sym.imp.MSVCR100.dll_isdigit]
add esp, 4
test eax, eax
jne 0x1003d6e0
mov cx, word [ebx + esi*2]
inc esi
cmp cx, 0x29
jne 0x1003da36
cmp edi, dword [esp + 0x30]
jae 0x1003d72b
or dword [esp + 0x9c], 0x2000
mov dword [esp + 0x30], edi
mov dword [esp + 0xc], esi
jmp 0x1003da23
mov edi, 0x10
mov ecx, ebx
mov esi, str.LIMIT_RECURSION
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003d756
test edi, edi
jne 0x1003d740
jmp 0x1003d766
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003d7da
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
movzx eax, word [ebx + esi*2 + 0x24]
add esi, 0x12
push eax
xor edi, edi
call dword [sym.imp.MSVCR100.dll_isdigit]
add esp, 4
test eax, eax
je 0x1003d7ad
cmp edi, 0x19999998
ja 0x1003d7ad
movzx edx, word [ebx + esi*2]
movzx eax, word [ebx + esi*2 + 2]
inc esi
lea ecx, [edi + edi*4]
push eax
lea edi, [edx + ecx*2 - 0x30]
call dword [sym.imp.MSVCR100.dll_isdigit]
add esp, 4
test eax, eax
jne 0x1003d786
mov cx, word [ebx + esi*2]
inc esi
cmp cx, 0x29
jne 0x1003da36
cmp edi, dword [esp + 0x24]
jae 0x1003d7d1
or dword [esp + 0x9c], 0x4000
mov dword [esp + 0x24], edi
mov dword [esp + 0xc], esi
jmp 0x1003da23
mov edi, 3
mov ecx, ebx
mov esi, 0x1005a4c8
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003d7fc
test edi, edi
jne 0x1003d7e6
jmp 0x1003d808
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003d827
mov ecx, dword [esp + 0x14]
add dword [esp + 0xc], 5
mov eax, 0x100000
and ecx, 0xff8fffff
or ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x1003da23
mov edi, 3
mov ecx, ebx
mov esi, 0x1005a4cc
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003d866
test edi, edi
jne 0x1003d833
mov ecx, dword [esp + 0x14]
add dword [esp + 0xc], 5
mov eax, 0x200000
and ecx, 0xff8fffff
or ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x1003da23
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003d891
mov ecx, dword [esp + 0x14]
add dword [esp + 0xc], 5
mov eax, 0x200000
and ecx, 0xff8fffff
or ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x1003da23
mov edi, 5
mov ecx, ebx
mov esi, str.CRLF_
lea ecx, [ecx]
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003d8d3
test edi, edi
jne 0x1003d8a0
mov ecx, dword [esp + 0x14]
add dword [esp + 0xc], 7
mov eax, 0x300000
and ecx, 0xff8fffff
or ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x1003da23
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003d8fe
mov ecx, dword [esp + 0x14]
add dword [esp + 0xc], 7
mov eax, 0x300000
and ecx, 0xff8fffff
or ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x1003da23
mov edi, 4
mov ecx, ebx
mov esi, str.ANY_
lea ebx, [ebx]
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003d943
test edi, edi
jne 0x1003d910
mov ecx, dword [esp + 0x14]
add dword [esp + 0xc], 6
mov eax, 0x400000
and ecx, 0xff8fffff
or ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x1003da23
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003d96e
mov ecx, dword [esp + 0x14]
add dword [esp + 0xc], 6
mov eax, 0x400000
and ecx, 0xff8fffff
or ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x1003da23
mov edi, 8
mov ecx, ebx
mov esi, str.ANYCRLF_
lea ebx, [ebx]
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003d9b3
test edi, edi
jne 0x1003d980
mov ecx, dword [esp + 0x14]
add dword [esp + 0xc], 0xa
mov eax, 0x500000
and ecx, 0xff8fffff
or ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x1003da23
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003d9db
mov ecx, dword [esp + 0x14]
add dword [esp + 0xc], 0xa
mov eax, 0x500000
and ecx, 0xff8fffff
or ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x1003da23
mov edi, 0xc
mov ecx, ebx
mov esi, str.BSR_ANYCRLF_
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003d9fd
test edi, edi
jne 0x1003d9e7
jmp 0x1003da09
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003da50
add dword [esp + 0xc], 0xe
mov eax, 0x800000
mov edx, dword [esp + 0x14]
and edx, 0xfe7fffff
or edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp word [eax + ecx*2], 0x28
je 0x1003d530
mov edx, dword [esp + 0x14]
mov eax, edx
shr eax, 0xb
mov esi, 1
and eax, esi
je 0x1003da9b
lea eax, [esi + 0x1f]
jmp 0x1003dfac
mov edi, 0xc
mov ecx, ebx
mov esi, str.BSR_UNICODE_
lea esp, [esp]
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003da80
test edi, edi
jne 0x1003da60
add dword [esp + 0xc], 0xe
mov eax, 0x1000000
jmp 0x1003da13
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003da36
add dword [esp + 0xc], 0xe
mov eax, 0x1000000
jmp 0x1003da13
test edx, 0x20000000
je 0x1003daad
mov eax, 0x43
jmp 0x1003dfac
mov ecx, edx
and ecx, 0x1800000
cmp ecx, 0x1800000
jne 0x1003dac7
mov eax, 0x38
jmp 0x1003dfac
mov eax, edx
and eax, 0x700000
cmp eax, 0x300000
jg 0x1003db41
je 0x1003db38
xor ebx, ebx
cmp eax, ebx
je 0x1003daef
cmp eax, 0x100000
je 0x1003db31
cmp eax, 0x200000
jne 0x1003db4f
mov eax, 0xa
mov dword [esp + 0xb0], ebx
cmp eax, 0xff
jle 0x1003db73
mov ecx, eax
sar ecx, 8
movzx eax, al
and ecx, 0xff
mov dword [esp + 0xb4], 2
mov word [esp + 0xb8], cx
mov word [esp + 0xba], ax
jmp 0x1003db82
mov eax, 0xd
jmp 0x1003daf4
mov eax, 0xd0a
xor ebx, ebx
jmp 0x1003daf4
cmp eax, 0x400000
je 0x1003db68
cmp eax, 0x500000
je 0x1003db59
mov eax, 0x38
jmp 0x1003dfac
mov dword [esp + 0xb0], 2
xor ebx, ebx
jmp 0x1003db82
mov dword [esp + 0xb0], esi
xor ebx, ebx
jmp 0x1003db82
mov dword [esp + 0xb4], esi
mov word [esp + 0xb8], ax
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0xc0]
mov eax, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], ecx
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x7c], 0x800
mov dword [esp + 0x60], edi
mov eax, edi
cmp word [edi], bx
je 0x1003dbe2
add eax, 2
add ecx, esi
cmp word [eax], bx
jne 0x1003dbd8
lea eax, [edi + ecx*2]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x64], eax
lea eax, [edi + ecx*2]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0xc], eax
mov ecx, 0x7d
mov word [esp + 0xc0], cx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x4c]
push ecx
push ebx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x48]
push ecx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x54]
push ecx
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea eax, [esp + 0x40]
push eax
push edx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xd4], edx
mov dword [esp + 0xa4], ebx
call fcn.1003c950
mov eax, dword [esp + 0x4c]
add esp, 0x3c
cmp eax, ebx
jne 0x1003dfac
mov eax, dword [esp + 0x2c]
cmp eax, 0x10000
jle 0x1003dc8f
mov eax, 0x14
jmp 0x1003dfac
mov esi, dword [esp + 0x78]
imul esi, dword [esp + 0x74]
add esi, eax
lea esi, [esi + esi + 0x38]
push esi
call dword [0x100695e4]
mov edi, eax
add esp, 4
cmp edi, ebx
jne 0x1003dcb8
mov eax, 0x15
jmp 0x1003dfac
mov eax, dword [esp + 0x30]
mov dword [edi + 4], esi
mov dword [edi], 0x50435245
mov ecx, dword [esp + 0x98]
mov dword [edi + 8], ecx
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x24]
mov dword [edi + 0x14], ecx
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], eax
xor edx, edx
mov dword [edi + 0x18], edx
xor esi, esi
mov ecx, 0x1c
mov word [edi + 0x22], cx
movzx edx, word [esp + 0x78]
mov word [edi + 0x24], dx
movzx eax, word [esp + 0x74]
mov word [edi + 0x26], ax
mov dword [edi + 0x30], esi
mov dword [edi + 0x34], esi
xor ecx, ecx
mov word [edi + 0x28], cx
mov word [edi + 0x2a], cx
xor edx, edx
mov dword [edi + 0x2c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x84], edx
mov dword [esp + 0x94], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x74], esi
movzx eax, word [edi + 0x22]
lea ebx, [edi + eax*2]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], ebx
movzx edx, word [edi + 0x24]
movzx ecx, word [edi + 0x26]
imul ecx, edx
push esi
lea ebx, [ebx + ecx*2]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x4c]
push eax
push esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0x74], esi
mov edx, 0x7d
mov word [ebx], dx
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x54]
push ecx
push esi
push esi
push esi
push esi
lea edx, [esp + 0x3c]
push edx
mov edx, dword [edi + 8]
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x40]
push ecx
push edx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x48], ebx
call fcn.1003c950
movzx eax, word [esp + 0xbc]
add esp, 0x3c
mov word [edi + 0x1e], ax
mov cx, word [esp + 0x8c]
mov word [edi + 0x20], cx
movzx edx, word [esp + 0x88]
mov word [edi + 0x1c], dx
mov eax, dword [esp + 0x9c]
or eax, 2
mov dword [edi + 0xc], eax
cmp dword [esp + 0xa4], esi
je 0x1003de1e
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], 0xffffffff
cmp dword [esp + 0x10], esi
jne 0x1003de35
mov ecx, dword [esp + 0x1c]
cmp word [ecx], si
je 0x1003de35
mov dword [esp + 0x10], 0x16
mov eax, dword [esp + 0xc]
xor edx, edx
mov word [eax], dx
add eax, 2
sub eax, ebx
sar eax, 1
cmp eax, dword [esp + 0x2c]
jle 0x1003de53
mov dword [esp + 0x10], 0x17
mov ecx, dword [esp + 0x6c]
cmp ecx, dword [esp + 0x58]
jbe 0x1003deb7
or edx, 0xffffffff
xor eax, eax
cmp dword [esp + 0x10], esi
jne 0x1003deb7
cmp ecx, dword [esp + 0x58]
jbe 0x1003deb7
sub ecx, 2
mov dword [esp + 0x6c], ecx
movzx ecx, word [ecx]
movzx esi, word [ebx + ecx*2]
mov dword [esp + 0x20], ecx
cmp esi, edx
je 0x1003de91
mov eax, ebx
call fcn.10037a80
mov ecx, dword [esp + 0x20]
mov edx, esi
test eax, eax
je 0x1003dead
mov esi, eax
sub esi, ebx
sar esi, 1
mov word [ebx + ecx*2], si
xor esi, esi
cmp dword [esp + 0x10], esi
jne 0x1003deb7
mov ecx, dword [esp + 0x6c]
jmp 0x1003de68
mov dword [esp + 0x10], 0x35
xor esi, esi
cmp dword [esp + 0x7c], 0x800
jle 0x1003decf
mov eax, dword [esp + 0x58]
push eax
call dword [0x100695e8]
add esp, 4
cmp dword [esp + 0x10], esi
jne 0x1003dee7
mov cx, word [edi + 0x20]
cmp cx, word [edi + 0x1e]
jbe 0x1003dee7
mov dword [esp + 0x10], 0xf
cmp dword [esp + 0xac], esi
je 0x1003df94
or esi, 0xffffffff
mov eax, ebx
call fcn.10037a80
mov esi, eax
test esi, esi
je 0x1003df92
cmp word [esi + 2], 0
jne 0x1003df5f
movzx edx, word [esi - 2]
movzx eax, word [esi + edx*2 - 4]
lea ebx, [esi + edx*2 - 4]
mov dword [esp + 0x20], eax
xor ecx, ecx
mov word [ebx], cx
mov eax, dword [edi + 8]
lea edx, [esp + 0x48]
push edx
shr eax, 0xb
push 1
and eax, 1
push eax
push esi
call fcn.10037780
mov cx, word [esp + 0x30]
add esp, 0x10
mov word [ebx], cx
test eax, eax
js 0x1003df72
cmp eax, dword [esp + 0x88]
jle 0x1003df5b
mov dword [esp + 0x88], eax
mov word [esi + 2], ax
lea eax, [esi + 4]
or esi, 0xffffffff
call fcn.10037a80
mov esi, eax
test esi, esi
jne 0x1003df08
jmp 0x1003df92
cmp eax, 0xfffffffe
jne 0x1003df81
mov dword [esp + 0x10], 0x24
jmp 0x1003df9e
sub eax, 0xfffffffc
neg eax
sbb eax, eax
and eax, 0xffffffd3
add eax, 0x46
mov dword [esp + 0x10], eax
xor esi, esi
cmp dword [esp + 0x10], esi
je 0x1003e017
push edi
call dword [0x100695e8]
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
sar ecx, 1
mov dword [edx], ecx
xor esi, esi
mov ecx, str.no_error
cmp eax, esi
jle 0x1003dffe
jmp 0x1003dfd0
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x1003dfd0
cmp byte [ecx], dl
je 0x1003dff9
dec eax
cmp eax, esi
jg 0x1003dfd0
mov dword [edi], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x10b8]
xor ecx, esp
call fcn.10048188
mov esp, ebp
pop ebp
ret
mov ecx, str.Error_text_not_found__please_report_
mov dword [edi], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x10b8]
xor ecx, esp
call fcn.10048188
mov esp, ebp
pop ebp
ret
mov ebx, dword [edi + 8]
test bl, 0x10
jne 0x1003e086
mov esi, dword [esp + 0x24]
push 0
lea eax, [esp + 0x4c]
push eax
push 0
push esi
call fcn.1003cd50
add esp, 0x10
test eax, eax
je 0x1003e041
or ebx, 0x10
mov dword [edi + 8], ebx
jmp 0x1003e086
mov ecx, dword [esp + 0x28]
test ecx, ecx
jns 0x1003e0e2
push 0
lea ecx, [esp + 0x2c]
push ecx
push esi
call fcn.1003d220
mov ecx, dword [esp + 0x34]
add esp, 0xc
test ecx, ecx
jns 0x1003e0e6
push 0
lea edx, [esp + 0x4c]
push edx
push 0
push esi
call fcn.1003cf20
add esp, 0x10
test eax, eax
je 0x1003e086
or dword [edi + 0xc], 0x100
mov ecx, dword [esp + 0x34]
test ecx, ecx
js 0x1003e0cb
test byte [edi + 8], 0x10
je 0x1003e099
test cl, 2
je 0x1003e0cb
mov eax, dword [esp + 0x38]
mov word [edi + 0x1a], ax
test cl, 1
je 0x1003e0c7
mov ecx, 0xff
cmp ax, cx
ja 0x1003e0c7
mov ecx, dword [esp + 0x4c]
movzx edx, ax
movzx edx, byte [edx + ecx]
cmp dx, ax
je 0x1003e0c7
or dword [edi + 0xc], 0x80
or dword [edi + 0xc], 0x40
mov ecx, dword [esp + 0x10c4]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10048188
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x3c]
mov word [edi + 0x18], ax
test cl, 1
je 0x1003e10d
mov edx, 0xff
cmp ax, dx
ja 0x1003e10d
mov edx, dword [esp + 0x4c]
movzx ecx, ax
movzx ecx, byte [ecx + edx]
cmp cx, ax
je 0x1003e10d
or dword [edi + 0xc], 0x20
or dword [edi + 0xc], 0x10
jmp 0x1003e086