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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x10bc
call fcn.10046480
mov eax, dword [0x10063068]
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 0x1003bcc0
mov dword [edi], esi
cmp ecx, esi
jne 0x1003b1bd
lea eax, [esi + 0x10]
jmp 0x1003bc82
mov dword [ecx], esi
mov dword [esp + 0x48], 0x10052b98
mov dword [esp + 0x4c], 0x10052c98
mov dword [esp + 0x50], 0x10052d98
mov dword [esp + 0x54], 0x10052ed8
mov dword [esp + 0x9c], esi
cmp word [eax], 0x28
jne 0x1003b6f6
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp word [eax + ecx*2 + 2], 0x2a
jne 0x1003b6f6
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 0x1003b23e
test edi, edi
jne 0x1003b218
add dword [esp + 0xc], 8
or dword [esp + 0x14], 0x800
jmp 0x1003b6e3
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b25c
add dword [esp + 0xc], 8
or dword [esp + 0x14], 0x800
jmp 0x1003b6e3
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 0x1003b28e
test edi, edi
jne 0x1003b268
add dword [esp + 0xc], 6
or dword [esp + 0x14], 0x800
jmp 0x1003b6e3
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b2ac
add dword [esp + 0xc], 6
or dword [esp + 0x14], 0x800
jmp 0x1003b6e3
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 0x1003b2de
test edi, edi
jne 0x1003b2b8
add dword [esp + 0xc], 6
or dword [esp + 0x14], 0x20000000
jmp 0x1003b6e3
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b2fc
add dword [esp + 0xc], 6
or dword [esp + 0x14], 0x20000000
jmp 0x1003b6e3
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 0x1003b32e
test edi, edi
jne 0x1003b308
add dword [esp + 0xc], 0xf
or dword [esp + 0x14], 0x4000000
jmp 0x1003b6e3
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b34c
add dword [esp + 0xc], 0xf
or dword [esp + 0x14], 0x4000000
jmp 0x1003b6e3
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 0x1003b36e
test edi, edi
jne 0x1003b358
jmp 0x1003b37e
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b3f4
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 0x1003b3c7
mov edi, edi
cmp edi, 0x19999998
ja 0x1003b3c7
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 0x1003b3a0
mov cx, word [ebx + esi*2]
inc esi
cmp cx, 0x29
jne 0x1003b6f6
cmp edi, dword [esp + 0x30]
jae 0x1003b3eb
or dword [esp + 0x9c], 0x2000
mov dword [esp + 0x30], edi
mov dword [esp + 0xc], esi
jmp 0x1003b6e3
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 0x1003b416
test edi, edi
jne 0x1003b400
jmp 0x1003b426
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b49a
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 0x1003b46d
cmp edi, 0x19999998
ja 0x1003b46d
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 0x1003b446
mov cx, word [ebx + esi*2]
inc esi
cmp cx, 0x29
jne 0x1003b6f6
cmp edi, dword [esp + 0x24]
jae 0x1003b491
or dword [esp + 0x9c], 0x4000
mov dword [esp + 0x24], edi
mov dword [esp + 0xc], esi
jmp 0x1003b6e3
mov edi, 3
mov ecx, ebx
mov esi, 0x10057238
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003b4bc
test edi, edi
jne 0x1003b4a6
jmp 0x1003b4c8
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b4e7
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 0x1003b6e3
mov edi, 3
mov ecx, ebx
mov esi, 0x1005723c
movzx eax, word [ecx]
movzx edx, byte [esi]
dec edi
add ecx, 2
inc esi
cmp dx, ax
jne 0x1003b526
test edi, edi
jne 0x1003b4f3
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 0x1003b6e3
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b551
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 0x1003b6e3
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 0x1003b593
test edi, edi
jne 0x1003b560
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 0x1003b6e3
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b5be
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 0x1003b6e3
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 0x1003b603
test edi, edi
jne 0x1003b5d0
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 0x1003b6e3
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b62e
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 0x1003b6e3
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 0x1003b673
test edi, edi
jne 0x1003b640
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 0x1003b6e3
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b69b
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 0x1003b6e3
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 0x1003b6bd
test edi, edi
jne 0x1003b6a7
jmp 0x1003b6c9
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b710
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 0x1003b1f0
mov edx, dword [esp + 0x14]
mov eax, edx
shr eax, 0xb
mov esi, 1
and eax, esi
je 0x1003b75b
lea eax, [esi + 0x1f]
jmp 0x1003bc6c
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 0x1003b740
test edi, edi
jne 0x1003b720
add dword [esp + 0xc], 0xe
mov eax, 0x1000000
jmp 0x1003b6d3
sbb eax, eax
neg eax
lea eax, [eax + eax - 1]
test eax, eax
jne 0x1003b6f6
add dword [esp + 0xc], 0xe
mov eax, 0x1000000
jmp 0x1003b6d3
test edx, 0x20000000
je 0x1003b76d
mov eax, 0x43
jmp 0x1003bc6c
mov ecx, edx
and ecx, 0x1800000
cmp ecx, 0x1800000
jne 0x1003b787
mov eax, 0x38
jmp 0x1003bc6c
mov eax, edx
and eax, 0x700000
cmp eax, 0x300000
jg 0x1003b801
je 0x1003b7f8
xor ebx, ebx
cmp eax, ebx
je 0x1003b7af
cmp eax, 0x100000
je 0x1003b7f1
cmp eax, 0x200000
jne 0x1003b80f
mov eax, 0xa
mov dword [esp + 0xb0], ebx
cmp eax, 0xff
jle 0x1003b833
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 0x1003b842
mov eax, 0xd
jmp 0x1003b7b4
mov eax, 0xd0a
xor ebx, ebx
jmp 0x1003b7b4
cmp eax, 0x400000
je 0x1003b828
cmp eax, 0x500000
je 0x1003b819
mov eax, 0x38
jmp 0x1003bc6c
mov dword [esp + 0xb0], 2
xor ebx, ebx
jmp 0x1003b842
mov dword [esp + 0xb0], esi
xor ebx, ebx
jmp 0x1003b842
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 0x1003b8a2
add eax, 2
add ecx, esi
cmp word [eax], bx
jne 0x1003b898
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.1003a610
mov eax, dword [esp + 0x4c]
add esp, 0x3c
cmp eax, ebx
jne 0x1003bc6c
mov eax, dword [esp + 0x2c]
cmp eax, 0x10000
jle 0x1003b94f
mov eax, 0x14
jmp 0x1003bc6c
mov esi, dword [esp + 0x78]
imul esi, dword [esp + 0x74]
add esi, eax
lea esi, [esi + esi + 0x38]
push esi
call dword [0x10065740]
mov edi, eax
add esp, 4
cmp edi, ebx
jne 0x1003b978
mov eax, 0x15
jmp 0x1003bc6c
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.1003a610
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 0x1003bade
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], 0xffffffff
cmp dword [esp + 0x10], esi
jne 0x1003baf5
mov ecx, dword [esp + 0x1c]
cmp word [ecx], si
je 0x1003baf5
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 0x1003bb13
mov dword [esp + 0x10], 0x17
mov ecx, dword [esp + 0x6c]
cmp ecx, dword [esp + 0x58]
jbe 0x1003bb77
or edx, 0xffffffff
xor eax, eax
cmp dword [esp + 0x10], esi
jne 0x1003bb77
cmp ecx, dword [esp + 0x58]
jbe 0x1003bb77
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 0x1003bb51
mov eax, ebx
call fcn.10035740
mov ecx, dword [esp + 0x20]
mov edx, esi
test eax, eax
je 0x1003bb6d
mov esi, eax
sub esi, ebx
sar esi, 1
mov word [ebx + ecx*2], si
xor esi, esi
cmp dword [esp + 0x10], esi
jne 0x1003bb77
mov ecx, dword [esp + 0x6c]
jmp 0x1003bb28
mov dword [esp + 0x10], 0x35
xor esi, esi
cmp dword [esp + 0x7c], 0x800
jle 0x1003bb8f
mov eax, dword [esp + 0x58]
push eax
call dword [0x10065744]
add esp, 4
cmp dword [esp + 0x10], esi
jne 0x1003bba7
mov cx, word [edi + 0x20]
cmp cx, word [edi + 0x1e]
jbe 0x1003bba7
mov dword [esp + 0x10], 0xf
cmp dword [esp + 0xac], esi
je 0x1003bc54
or esi, 0xffffffff
mov eax, ebx
call fcn.10035740
mov esi, eax
test esi, esi
je 0x1003bc52
cmp word [esi + 2], 0
jne 0x1003bc1f
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.10035440
mov cx, word [esp + 0x30]
add esp, 0x10
mov word [ebx], cx
test eax, eax
js 0x1003bc32
cmp eax, dword [esp + 0x88]
jle 0x1003bc1b
mov dword [esp + 0x88], eax
mov word [esi + 2], ax
lea eax, [esi + 4]
or esi, 0xffffffff
call fcn.10035740
mov esi, eax
test esi, esi
jne 0x1003bbc8
jmp 0x1003bc52
cmp eax, 0xfffffffe
jne 0x1003bc41
mov dword [esp + 0x10], 0x24
jmp 0x1003bc5e
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 0x1003bcd7
push edi
call dword [0x10065744]
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 0x1003bcbe
jmp 0x1003bc90
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x1003bc90
cmp byte [ecx], dl
je 0x1003bcb9
dec eax
cmp eax, esi
jg 0x1003bc90
mov dword [edi], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x10b8]
xor ecx, esp
call fcn.10045a28
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.10045a28
mov esp, ebp
pop ebp
ret
mov ebx, dword [edi + 8]
test bl, 0x10
jne 0x1003bd46
mov esi, dword [esp + 0x24]
push 0
lea eax, [esp + 0x4c]
push eax
push 0
push esi
call fcn.1003aa10
add esp, 0x10
test eax, eax
je 0x1003bd01
or ebx, 0x10
mov dword [edi + 8], ebx
jmp 0x1003bd46
mov ecx, dword [esp + 0x28]
test ecx, ecx
jns 0x1003bda2
push 0
lea ecx, [esp + 0x2c]
push ecx
push esi
call fcn.1003aee0
mov ecx, dword [esp + 0x34]
add esp, 0xc
test ecx, ecx
jns 0x1003bda6
push 0
lea edx, [esp + 0x4c]
push edx
push 0
push esi
call fcn.1003abe0
add esp, 0x10
test eax, eax
je 0x1003bd46
or dword [edi + 0xc], 0x100
mov ecx, dword [esp + 0x34]
test ecx, ecx
js 0x1003bd8b
test byte [edi + 8], 0x10
je 0x1003bd59
test cl, 2
je 0x1003bd8b
mov eax, dword [esp + 0x38]
mov word [edi + 0x1a], ax
test cl, 1
je 0x1003bd87
mov ecx, 0xff
cmp ax, cx
ja 0x1003bd87
mov ecx, dword [esp + 0x4c]
movzx edx, ax
movzx edx, byte [edx + ecx]
cmp dx, ax
je 0x1003bd87
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.10045a28
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x3c]
mov word [edi + 0x18], ax
test cl, 1
je 0x1003bdcd
mov edx, 0xff
cmp ax, dx
ja 0x1003bdcd
mov edx, dword [esp + 0x4c]
movzx ecx, ax
movzx ecx, byte [ecx + edx]
cmp cx, ax
je 0x1003bdcd
or dword [edi + 0xc], 0x20
or dword [edi + 0xc], 0x10
jmp 0x1003bd46