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

Disassembly:
sub esp, 0x294
push ebx
push ebp
push esi
push edi
mov byte [esp + 0x42], 0x39
mov dword [esp + 0x18], 2
mov al, byte [esp + 0x42]
movzx cx, al
mov eax, dword [esp + 0x18]
mov byte [esp + 0xb2], 0x28
xor ebx, ebx
imul eax, ecx
lea ecx, [eax + eax*2]
add ecx, ecx
add ecx, ecx
movzx eax, cx
movzx edx, al
mov dword [esp + 0x174], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
imul eax, eax, 0xffffdfff
mov dword [0x10074730], eax
mov eax, dword [0x10074730]
mov byte [0x1007472e], al
mov ecx, 0x104
mov word [0x1007472c], cx
movsx ecx, al
mov dword [0x10074728], 0x10074730
mov byte [esp + 0x13], bl
mov eax, dword [esp + 0x14]
add eax, ecx
movsx ecx, word [esp + 0x174]
mov esi, 0xffffffd8
sub esi, ecx
add esi, dword [esp + 0x14]
movsx edx, word [0x1007472c]
sub edx, 0x7ff8ffa9
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [0x10074730]
add ecx, edx
xor ebp, ebp
add edi, eax
mov eax, ecx
cdq
adc ebp, ebx
mov dword [esp + 0x3c], ebx
cmp eax, edi
jne 0x1000515d
cmp edx, ebp
je 0x10005335
mov dword [esp + 0x14], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x1c], 0x180
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
add edx, 0x58
mov dword [esp + 0x17c], 0x58
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x88]
add eax, 2
movzx edx, ax
mov dword [esp + 0x1f0], edx
mov dword [esp + 0xfc], 0x59
lea eax, [esp + 0xfc]
mov dword [0x10074724], eax
mov al, byte [esp + 0xfc]
imul dl
add al, 0x80
mov byte [0x10074720], al
movzx eax, dx
mov dword [0x1007471c], ebx
mov edx, dword [esp + 0x88]
and edx, esi
and edx, eax
mov byte [esp + 0x55], 0xc
mov dword [esp + 0x244], 1
mov dword [0x10074718], edx
mov eax, dword [0x10074718]
dec eax
mov dword [esp + 0x184], eax
mov dl, 1
sub dl, cl
add edi, 0x20
or ebp, 0xffffffff
imul edi, edi, 0x3a
mov byte [esp + 0x44], dl
movsx edx, byte [0x10074720]
lea eax, [esp + 0x44]
mov dword [0x10074714], eax
xor ecx, ecx
mov dword [esp + 0x24c], ebp
mov word [0x10074710], cx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
sub eax, ecx
add eax, dword [0x10074730]
add edx, edi
movzx eax, ax
mov dword [esp + 0x90], edx
movzx edx, ax
mov esi, 0x7fffffff
sub esi, edi
cmp edx, dword [esp + 0x90]
mov dword [esp + 0x254], 6
jg 0x1000529a
mov eax, dword [0x10074728]
push eax
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x98]
push edx
push 0x1007472e
mov edx, 0x10074720
lea ecx, [esp + 0x18c]
call fcn.10004330
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dl, byte [esp + 0x55]
mov edi, dword [esp + 0x184]
movzx ecx, ax
movsx eax, dl
add edi, 0xffffff00
lea edx, [eax + edi + 1]
mov eax, dword [esp + 0x24]
mov dword [0x1007471c], edx
mov edx, dword [0x1007471c]
add eax, esi
or eax, edx
mov dword [0x1007471c], eax
mov eax, dword [0x10074714]
movsx eax, byte [eax]
add eax, 0x70600008
or dword [0x1007471c], eax
mov edx, dword [0x1007471c]
mov eax, dword [0x10074718]
or ecx, edx
and eax, 1
mov word [0x10074710], ax
mov dword [esp + 0x18], ecx
mov cl, byte [esp + 0x13]
movzx edx, word [0x1007472c]
movzx eax, cl
movzx ecx, word [0x10074710]
or eax, edx
sub ecx, eax
mov word [0x10074710], cx
mov dx, word [0x10074710]
or word [esp + 0x18], dx
mov al, byte [esp + 0x18]
mov byte [esp + 0x13], al
jmp 0x10005338
or ebp, 0xffffffff
mov cl, byte [esp + 0x13]
mov dword [esp + 0x14], ebx
mov dword [0x1007470c], 0xf
mov eax, dword [esp + 0x14]
mov edx, dword [0x1007470c]
mov dword [esp + 0x1d8], edx
add al, byte [esp + 0x1d8]
mov edx, 0x80
movsx cx, al
add cx, dx
movzx ecx, cx
lea ecx, [ecx + ecx - 0xf]
movsx eax, al
imul ecx, eax
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x14], ecx
mov ecx, dword [0x1007470c]
and ecx, 1
or dword [esp + 0x14], ecx
mov edx, dword [esp + 0x14]
lea eax, [eax + edx - 9]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
xor edx, edx
lea eax, [esp + 0xc0]
push eax
mov ecx, eax
push ecx
mov dword [esp + 0x264], 0x36b8ff79
mov word [0x10074708], dx
lea edx, [esp + 0x124]
push edx
push 1
push 0x10074700
push 0xc0000011
mov edx, 0x10074700
mov ecx, 1
mov dword [esp + 0x134], 1
mov dword [0x10074700], ebx
mov dword [0x10074704], ebx
mov dword [esp + 0xd8], ebp
call fcn.100042a0
cbw
mov word [0x10074708], ax
xor ecx, ecx
mov word [0x100746fc], cx
xor edx, edx
mov word [0x100746f8], dx
movzx eax, byte [0x100746f8]
add al, 0xd
mov byte [esp + 0x57], al
lea ecx, [esp + 0x57]
mov dword [0x100746f4], ecx
mov dword [0x100746f0], 0x100746f8
mov dword [esp + 0x264], 0x104
mov edi, 4
mov dword [0x100746e8], edi
mov dword [0x100746ec], ebx
mov edx, dword [0x100746e8]
mov eax, dword [0x100746ec]
sub edx, 2
mov dword [esp + 0x128], edx
mov edx, dword [0x100746f4]
mov al, byte [edx]
cbw
lea ecx, [esp + 0x128]
mov dword [0x100746e0], ecx
mov cx, word [0x100746fc]
imul cx, ax
movzx eax, word [0x100746fc]
movzx edx, cx
mov ecx, dword [0x100746e8]
add eax, 0xfffffffc
mov dword [esp + 0x24], edx
mov edx, dword [0x100746ec]
movzx edx, word [0x100746fc]
sub ax, cx
mov ecx, 0x276c
sub ax, cx
add dx, ax
mov ax, word [esp + 0x24]
mov ecx, dword [0x100746e0]
and ax, dx
movzx edx, byte [ecx]
imul dx, ax
mov ecx, 0x228
sub dx, cx
or ax, dx
mov word [0x100746fc], ax
mov dword [0x100746dc], 0x20
mov byte [0x100746d8], bl
mov al, byte [0x100746d8]
sub al, 0x14
lea ecx, [esp + 0x178]
mov dword [0x100746d4], ecx
movsx edx, al
add edx, 2
mov dword [esp + 0x98], ebx
mov dword [esp + 0x18], ebx
mov cl, al
mov dword [esp + 0x110], ebx
mov byte [esp + 0x2f], dl
add cl, cl
mov esi, 0x64
sub cl, 0x1c
mov byte [esp + 0xb3], 0xc
mov dword [esp + 0x178], esi
mov byte [esp + 0x87], 0xfc
mov byte [0x100746d8], cl
mov dl, byte [0x100746d8]
movzx edx, dl
add edx, 0x10
mov dword [esp + 0x110], ebp
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x18]
cmp edx, ebp
jne 0x100055bc
mov edx, dword [0x100746d4]
mov dx, word [edx]
movzx edx, dx
add edx, 0x10
push edx
push 0xc
lea edx, [esp + 0x118]
push edx
movsx edx, byte [esp + 0x3b]
push edx
mov edx, dword [esp + 0x28]
push edx
mov dl, byte [esp + 0x43]
add dl, cl
push 0x38
add dl, 0x27
push ebx
or dl, al
push 0xc
lea ecx, [esp + 0xb8]
call fcn.100176c0
movsx eax, al
mov dword [esp + 0x98], eax
movzx ecx, byte [0x100746d8]
movzx edx, byte [esp + 0x98]
or ecx, edx
mov byte [0x100746d8], cl
xor ecx, ecx
mov dword [0x100746d0], ecx
mov dword [0x100746cc], 8
mov dword [0x100746c8], edi
mov al, byte [0x100746c8]
add al, 0x30
mov byte [esp + 0x54], al
movzx eax, al
and eax, 1
sub ecx, 0x58
mov dword [0x100746d0], ecx
mov dword [0x100746c4], 0x100746c8
lea edx, [esp + 0x54]
movzx ecx, byte [edx]
mov dword [0x100746c0], edx
mov word [0x100746bc], ax
movzx edx, byte [0x100746bc]
mov eax, 0x11
sub eax, ecx
or eax, 0x30
movsx ecx, dl
and ecx, eax
or dword [0x100746d0], ecx
xor edx, edx
mov dword [0x100746b8], 0x100746bc
mov word [esp + 0x1c], dx
mov byte [esp + 0x13], bl
mov byte [0x100746b6], 1
mov byte [esp + 0x13], bl
mov al, byte [esp + 0x13]
or al, 0x2c
mov byte [esp + 0x13], al
mov dl, byte [esp + 0x13]
or dl, 0xe
mov byte [esp + 0x13], dl
movzx eax, byte [esp + 0x13]
movsx dx, al
mov word [esp + 0x1c], dx
movzx eax, byte [esp + 0x13]
movsx edx, al
mov eax, 3
sub eax, edx
xor ecx, ecx
cmp eax, 0x201
jne 0x10005700
mov cx, word [esp + 0x1c]
mov al, byte [0x100746b6]
add al, 0x19
mov byte [esp + 0x53], al
inc cx
movzx eax, cx
movsx ecx, ax
mov dword [esp + 0x26c], eax
mov eax, 0x6b
sub eax, ecx
mov cl, byte [esp + 0x53]
mov edx, 0x260
mov word [0x100746b4], dx
movsx edx, cl
movzx ecx, cl
sub eax, edx
sub eax, ecx
sub eax, 0x280
mov dword [esp + 0x274], 0x18
mov dword [0x100746b0], 0x100746b4
mov dword [esp + 0x27c], 0x280
mov ecx, eax
movzx edx, word [esp + 0x1c]
or edx, ecx
mov word [esp + 0x1c], dx
mov dword [0x100746ac], ebx
mov dword [esp + 0x130], 0x2afa
mov dword [0x100757a8], 0x10000
lea eax, [esp + 0x130]
mov dword [0x100746a8], eax
mov ecx, 0xb
mov word [0x100746a4], cx
movsx ecx, byte [eax]
mov byte [esp + 0x2e], 0x10
lea edx, [esp + 0x2e]
mov dword [0x100746a0], edx
mov dword [0x100746ac], esi
mov eax, 0x14
sub eax, ecx
and dword [0x100746ac], eax
mov edx, dword [0x100746ac]
mov eax, dword [0x100746a0]
mov cl, byte [eax]
mov dl, byte [esp + 0x2e]
xor eax, eax
mov word [esp + 0x1c], ax
mov cx, word [esp + 0x1c]
mov byte [0x1007469e], bl
mov al, byte [0x1007469e]
add al, cl
mov byte [0x1007469e], al
movsx dx, al
mov word [esp + 0x1c], dx
mov byte [0x1007469d], 0x24
mov dword [esp + 0x284], 0x10
mov byte [0x1007469c], 0x20
movzx edx, byte [0x1007469c]
mov ebp, 0x24
mov dword [esp + 0x118], ebp
movzx ecx, word [esp + 0x118]
or ecx, edx
add ecx, ebp
lea eax, [esp + 0x118]
mov dword [0x10074698], eax
mov eax, ecx
neg eax
mov dword [0x10074694], eax
mov dword [esp + 0x1a8], 0x98000004
mov dword [0x10074690], 5
mov eax, dword [0x10074694]
movzx edx, word [esp + 0x1a8]
add eax, 8
imul edx, eax
movsx eax, byte [0x1007469d]
add edx, eax
mov eax, dword [0x10074694]
mov edi, dword [0x10074694]
mov dword [0x1007468c], 0x10074690
mov esi, dword [0x1007468c]
add eax, dword [esi]
mov esi, 0xfffffff0
imul eax, edx
mov edx, esi
sub edx, edi
mov dword [esp + 0x28c], edx
imul edx, ecx
mov dword [esp + 0x194], edx
movzx edx, byte [esp + 0x194]
lea ecx, [esp + 0x194]
mov dword [0x10074688], ecx
movzx ecx, dl
movsx edx, byte [0x1007469d]
add ecx, eax
sub edx, 0x38cfcffd
and ecx, edx
mov dword [esp + 0x294], ecx
mov dword [esp + 0x198], ebx
mov dword [esp + 0xc8], 3
mov edx, dword [esp + 0xc8]
lea ecx, [esp + 0xc8]
add eax, edx
mov dword [0x10074684], ecx
add al, al
mov dword [esp + 0x138], 0x43434d50
mov ecx, dword [esp + 0x138]
movsx edx, al
mov eax, dword [0x10074694]
sub edx, ecx
mov byte [0x10074680], 0x18
add edx, 0x10
mov dword [0x1007467c], edx
xor al, al
mov byte [0x10074678], al
mov ecx, 0xf
mov word [esp + 0xa0], cx
movzx edx, byte [esp + 0xa0]
sub dl, 0x58
mov al, 2
or al, dl
or al, cl
mov byte [0x10074678], al
mov dword [0x10074670], ebx
mov dword [0x10074674], ebx
mov dword [0x10074670], 0x18
mov dword [0x10074674], ebx
mov eax, dword [0x10074670]
mov ecx, dword [0x10074674]
mov byte [0x10074668], bl
movzx edx, byte [0x10074668]
neg edx
mov byte [0x10074668], dl
mov al, byte [0x10074668]
mov dword [esp + 0x78], ebx
mov dword [0x10074660], ebx
lea edx, [esp + 0x78]
mov ecx, 0x50c
mov dword [0x10074664], ebx
call fcn.10004760
mov ecx, dword [esp + 0x78]
lea edx, [eax + ecx]
cmp edx, 0xfffc
jae 0x10005980
push 0x10074660
call fcn.10004170
add esp, 4
cwde
mov dword [esp + 0x78], eax
mov dword [esp + 0x180], ebx
mov dword [esp + 0x1e8], 2
call fcn.10001000
mov dword [esp + 0x180], eax
mov eax, 0x151
mov word [esp + 0x18c], ax
mov dword [0x10074658], ebx
mov dword [esp + 0x24], 0xcb
mov dword [esp + 0x18], 0xcf
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov dword [0x10074658], ecx
mov edi, 1
cmp dword [0x10074658], edx
je 0x10005a29
mov dword [0x10074650], esi
mov dword [0x10074654], ebx
mov eax, dword [0x10074650]
mov ecx, dword [0x10074654]
mov eax, dword [esp + 0x18]
add dword [0x10074658], edi
lea edx, [esp + 0x140]
mov dword [esp + 0x140], 0x2000
mov dword [0x10074648], edx
mov byte [esp + 0xab], 8
cmp dword [0x10074658], eax
jne 0x100059e0
mov dword [esp + 0x64], ebx
mov dword [esp + 0x48], ebx
mov byte [0x10074647], 0x10
mov byte [0x10074646], 0x17
movzx ecx, byte [0x10074647]
movzx eax, byte [0x10074646]
movsx edx, cl
movsx ecx, al
mov byte [0x10074645], bl
movzx eax, byte [0x10074646]
sub edx, ecx
add al, 0x10
mov byte [0x10074644], al
mov al, byte [0x10074646]
lea ecx, [esp + 0x1cc]
mov dword [0x10074640], ecx
movzx ecx, byte [0x10074644]
mov dword [esp + 0x1cc], 2
mov dword [0x10074638], ebx
mov dword [0x1007463c], ebx
mov byte [0x10074645], cl
movzx ecx, byte [0x10074645]
add al, 0x14
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ebx
mov byte [esp + 0x13], al
cmp cl, al
je 0x10005b03
jmp 0x10005ac0
mov ecx, dword [0x10074640]
lea edx, [esp + 0x48]
push edx
mov edx, dword [ecx]
push 0x10074638
lea eax, [esp + 0x6c]
push eax
push edx
push 4
push ebx
push edi
push 0x14
push 0x1344
call fcn.10017200
inc byte [0x10074645]
mov cl, byte [0x10074645]
movzx eax, ax
cmp cl, byte [esp + 0x13]
jne 0x10005ac0
mov edx, dword [esp + 0x1c]
jmp 0x10005b07
mov al, byte [esp + 0x24]
movsx eax, al
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x48]
neg ecx
or ecx, edx
or ecx, 0x1020
cmp ecx, edi
jl 0x10005d08
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x38], ebx
xor eax, eax
mov dword [esp + 0x3c], ebx
mov cl, byte [0x10074646]
mov word [0x10074630], ax
movsx eax, cl
lea eax, [eax + eax*2]
mov byte [esp + 0x8f], bl
mov dword [0x1007462c], ebx
mov byte [esp + 0x97], 0x78
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
cmp ecx, 0x1d
jae 0x10005c74
mov eax, edi
mov word [0x10074628], ax
movzx eax, ax
add eax, 0x666984
mov dword [0x10074624], ebx
mov dword [0x10074620], eax
mov byte [0x1007461c], bl
mov dword [0x10074618], ebx
mov dword [esp + 0x14], 5
mov ecx, dword [esp + 0x14]
movzx eax, word [0x10074628]
and ecx, ebp
lea ecx, [ecx + eax + 1]
mov eax, dword [esp + 0x18]
or eax, 5
imul eax, ecx
movzx ecx, byte [0x10074647]
add eax, ecx
mov ecx, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x188], 0xc00d1327
mov dword [esp + 0x1a0], ebx
mov dword [esp + 0x1a4], ebx
mov dword [esp + 0x148], ebx
mov dword [0x10074624], eax
cmp ecx, eax
ja 0x10005c37
lea edx, [esp + 0x148]
push edx
mov edx, dword [0x10074620]
lea eax, [esp + 0x1a4]
push eax
lea ecx, [esp + 0x190]
push ecx
mov ecx, dword [esp + 0x20]
push edx
lea eax, [esp + 0x74]
push eax
push 0x8d
sub ecx, 0x3ff2ecd9
lea edx, [esp + 0x1b8]
call fcn.100042a0
mov edx, dword [esp + 0x1c]
mov dword [0x10074618], eax
mov esi, dword [esp + 0x48]
movzx eax, byte [0x10074647]
mov cl, byte [0x10074618]
mov byte [0x1007461c], cl
movsx ecx, al
mov al, byte [0x1007461c]
or ecx, 0x1f
or esi, ecx
movzx ecx, al
lea ecx, [esi + ecx + 0xc]
or al, cl
mov byte [0x1007461c], al
movzx eax, al
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov eax, 0xffff
mov word [0x10074630], ax
movzx eax, byte [0x10074647]
add eax, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x48]
and eax, 0x1d
sub ecx, eax
mov dword [0x10074610], ebx
mov eax, dword [0x10074610]
mov dword [esp + 0x24], ecx
sub dl, byte [esp + 0x24]
lea ecx, [eax + eax*2]
add ecx, ecx
movzx ecx, cx
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x18]
add al, cl
add dl, 0x44
add al, 2
or dl, al
or dl, byte [esp + 0x150]
mov dword [0x1007462c], 0xffffe9e1
mov byte [0x10074609], dl
movsx eax, dl
cdq
mov dword [0x10074614], ebx
mov byte [0x10074608], 6
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
sub ecx, edx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x248], 4
mov byte [esp + 0x7d], 5
mov dword [0x10074604], 0xfffffff7
mov dword [esp + 0x18], ebx
mov dword [esp + 0xa4], ebx
mov byte [esp + 0x4f], 0xff
movzx ecx, byte [esp + 0x4f]
mov dword [esp + 0x14], 3
mov eax, dword [esp + 0x14]
add eax, ecx
movzx esi, ax
sub esi, 0x7ff90000
imul esi, esi, 0x7c
xor edx, edx
mov dword [esp + 0xd0], eax
mov word [0x10074600], dx
cmp si, bx
ja 0x10005f58
mov eax, dword [0x10074600]
add eax, 0xfffffff0
movzx eax, ax
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x14]
add edx, eax
mov dword [esp + 0x1f8], 0xff
mov dword [esp + 0x1b4], 4
mov eax, dword [esp + 0x18]
add eax, 0x104
and eax, dword [esp + 0x1b4]
movzx edx, dx
movzx edi, dx
lea eax, [eax + edi + 0x1c]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0xf0]
mov dword [0x100745fc], eax
mov eax, dword [esp + 0xf0]
inc eax
and eax, 0x9c77
imul eax, eax, 0xff642577
add ecx, 0x172
mov dword [esp + 0x24], edx
mov byte [0x100745f8], bl
mov byte [esp + 0xb4], 2
cmp ecx, eax
je 0x10005f05
mov byte [esp + 0x46], 0x20
mov al, byte [esp + 0x46]
movsx eax, al
mov dword [0x100745f4], 0x110
imul eax, dword [0x100745f4]
mov ecx, 0x14
mov word [0x100745f0], cx
mov ecx, dword [esp + 0xd0]
lea edi, [ecx - 0x1f]
lea ecx, [edi + ecx + 0x50]
add eax, 0x9c77
mov dword [esp + 0x200], ecx
and eax, 0x80070000
mov dword [esp + 0x288], eax
dec ecx
mov byte [esp + 0xb6], 0x20
mov dword [0x100745ec], 0x100745f0
mov dword [0x100745e8], ebx
mov dword [0x100745e4], ebx
mov dword [esp + 0x1e0], edi
mov dword [esp + 0x1e4], ebx
mov dword [0x100745e0], 8
mov dword [0x100745dc], ecx
mov cl, 0x11
imul cl
mov ecx, dword [esp + 0x14]
sub al, 0x62
add cl, al
movzx ax, cl
mov ecx, dword [esp + 0x14]
add ecx, 0x172
movzx edi, ax
mov eax, dword [esp + 0x1e0]
mov dword [0x100745e4], ecx
mov ecx, dword [0x100745e4]
add eax, esi
cmp ecx, eax
ja 0x10005ed3
mov ecx, dword [0x100745e0]
call fcn.10017170
mov edx, dword [esp + 0x24]
mov dword [0x100745e8], eax
or edi, dword [0x100745e8]
add dl, byte [0x100745dc]
mov dword [esp + 0x18], edi
mov al, byte [esp + 0x18]
add dl, byte [0x100745f4]
mov cl, 5
imul cl
or dl, al
or dl, 0xe8
movzx dx, dl
mov ax, di
add ax, dx
movzx eax, ax
jmp 0x10005f15
lea eax, [esp + 0xa4]
push eax
call fcn.1001ebc0
add esp, 4
mov cl, byte [esp + 0xd0]
mov dl, byte [0x10074600]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
or cl, 4
or dl, 0x11
sub cl, dl
mov byte [0x100745f8], cl
movzx ecx, byte [0x100745f8]
or eax, ecx
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x1c]
movzx eax, dx
mov edi, 1
mov dword [esp + 0xa4], eax
movzx ecx, word [esp + 0xa4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x14]
mov eax, 0xffff0007
sub eax, edx
add eax, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0x250], eax
movsx eax, al
mov dword [esp + 0x14], 0xffffffa1
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
add eax, 3
sub eax, ecx
mov ecx, dword [esp + 0x14]
lea eax, [eax + edx + 0xa]
or eax, ecx
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x34], ebx
mov word [esp + 0x1c], ax
mov byte [esp + 0x13], bl
mov ecx, 2
mov word [0x100745d8], cx
movzx edx, byte [esp + 0x13]
movsx eax, dl
mov dword [esp + 0x68], eax
add eax, 3
movzx edx, ax
movzx eax, byte [esp + 0x13]
mov dword [esp + 0x114], edx
movzx edx, word [esp + 0x114]
lea ecx, [esp + 0x68]
mov dword [0x100745d4], ecx
movsx ecx, al
mov ax, word [esp + 0x1c]
or ecx, 4
add ecx, edx
mov dword [0x100745d0], ecx
movzx ecx, ax
sub ecx, dword [esp + 0x68]
mov dword [esp + 0x1ac], 0x80070057
mov dword [0x100745cc], ecx
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0xd8], 0x30
mov dword [esp + 0x208], 0x1adc
mov dword [esp + 0x14], ebx
mov dx, word [esp + 0x1c]
movzx ecx, byte [0x100745d8]
movzx eax, dx
add eax, 0x39
mov dword [esp + 0x158], eax
mov al, byte [0x100745cc]
mov edx, 0x5106
sub edx, ecx
add al, 0x10
mov dword [esp + 0x34], 0x10
mov byte [esp + 0x13], dl
mov edx, dword [esp + 0x1ac]
sub al, dl
mov edx, dword [0x100745d4]
movzx eax, al
lea ecx, [esp + 0x68]
push ecx
push eax
push 0x100745cc
lea ecx, [esp + 0x40]
push ecx
push edx
movzx edx, byte [0x100745d0]
mov eax, dword [esp + 0x7c]
and edx, edi
add eax, 0xffffffdc
or edx, eax
add edx, dword [0x100745cc]
mov dword [esp + 0x50], ebx
call fcn.100175e0
mov word [esp + 0x1c], ax
mov cl, byte [esp + 0x13]
cmp cl, 6
jne 0x100060fa
movzx edx, word [esp + 0x1c]
and edx, 2
push edx
push 0x62
lea eax, [esp + 0x11c]
push eax
push 0x1a
push 0x100745d0
push 0x100745d0
lea edx, [esp + 0x1c4]
lea ecx, [esp + 0x4c]
call fcn.10004710
mov word [esp + 0x1c], ax
mov cx, word [esp + 0x1c]
movzx edx, cx
or dword [esp + 0x34], edx
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x14]
cmp eax, 6
je 0x1000614f
jmp 0x10006120
mov ecx, dword [esp + 0x158]
add ecx, esi
add ecx, dword [esp + 0xd8]
lea edx, [esp + 0xd8]
call fcn.10004760
add dword [esp + 0x14], edi
mov ecx, dword [esp + 0x14]
mov esi, eax
mov dword [esp + 0x3c], ebx
cmp ecx, 6
jne 0x10006120
or dword [esp + 0x34], esi
mov byte [esp + 0x7e], 4
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x14]
and eax, 0xf
cdq
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0xac], ebx
mov eax, 4
sub eax, edx
mov dword [esp + 0x1c0], eax
mov dword [0x100745c8], 0x41
mov byte [esp + 0x9f], 0x35
mov ecx, 0x5a
mov word [esp + 0x1c], cx
mov dword [0x100745c4], 0x1e000
mov dword [esp + 0x160], 0x1f
mov dword [0x10075a3c], 0x1000
mov edx, 0x11f
mov word [0x100745c0], dx
lea eax, [esp + 0x190]
mov dword [0x100745bc], eax
mov eax, dword [0x100745c4]
movzx ecx, word [0x100745c0]
sub al, 0x73
movsx eax, al
add eax, 0xd
imul eax, eax, 0x8007000c
mov dword [0x100745b8], eax
sub ecx, edi
and ecx, dword [0x100745b8]
mov dword [esp + 0x190], 0xe9
mov dword [esp + 0x14], 0xb
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x1b8]
or eax, 3
imul eax, eax, 0x9e
mov edx, 0xfffffffc
sub edx, eax
add edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
add dword [esp + 0x14], 0xfffffff8
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
and edx, 0x104
mov eax, 4
sub eax, edx
lea edx, [esp + 0x160]
push edx
push ecx
movzx esi, ax
lea eax, [esp + 0xb4]
push eax
mov al, byte [0x100745c4]
mov cl, 0x24
imul cl
mov cx, word [esp + 0x28]
movzx edx, al
push edx
push 0xffffffffffffff9f
push 0x100745c8
neg cl
lea edx, [esp + 0x1d0]
call fcn.100071e0
mov ecx, dword [0x100745c8]
mov dword [esp + 0xac], eax
movzx eax, word [esp + 0x1c0]
movzx edx, si
add ecx, eax
cmp edx, ecx
ja 0x100062b6
mov dword [esp + 0xac], ebx
mov byte [esp + 0x43], 1
mov al, byte [esp + 0x43]
movzx ecx, al
mov eax, edi
sub eax, ecx
cdq
add eax, 0xa30
mov byte [0x100745b4], al
mov dword [esp + 0x3c], edx
mov dword [esp + 0x278], ebp
mov edx, 0x8d
mov word [esp + 0x1c], dx
mov ax, word [esp + 0x1c]
add ax, 3
movzx eax, ax
movzx ecx, ax
add ecx, 0xc
mov dword [esp + 0x210], eax
mov dword [esp + 0x258], ecx
mov dx, word [esp + 0x1c]
mov dword [0x100745b0], 0xc0000017
mov dword [0x100745ac], 0xfeff
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
lea eax, [esp + 0x168]
mov dword [0x100745a8], eax
mov dword [esp + 0x168], 0x44
mov dword [esp + 0x218], 0x50
mov byte [esp + 0x13], bl
mov cl, byte [esp + 0x13]
mov eax, dword [0x100745a8]
movsx dx, cl
add dx, word [eax]
mov dword [esp + 0x19c], ebx
add dx, word [0x100745b0]
movzx ecx, dx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [esp + 0xf8], ecx
movsx cx, byte [esp + 0xf8]
sub cx, dx
add cx, word [esp + 0x19c]
add cx, 4
movzx eax, cx
mov dword [esp + 0x170], eax
cmp ax, 0x5f
jne 0x100063af
mov dword [0x1007474c], 0x40
movzx edx, byte [esp + 0x170]
movzx ax, dl
movzx eax, ax
mov byte [esp + 0x51], al
movzx ecx, byte [esp + 0x51]
mov dword [esp + 0x298], eax
movzx edx, cl
add edx, 0x50
mov dword [esp + 0x120], edx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
movzx ecx, word [esp + 0x120]
dec al
imul cl
mov cl, al
mov al, byte [0x100745ac]
sub al, 4
imul cl
movzx ecx, byte [esp + 0xf8]
add cl, 9
or al, cl
movzx eax, al
cdq
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov byte [esp + 0x22], 0xff
mov dword [esp + 0x10c], ebx
mov dword [0x100745a4], 0xffff
mov byte [esp + 0x45], bl
mov byte [esp + 0xb7], 0x11
mov dword [esp + 0x124], 0xff
mov dword [esp + 0x13c], 0xc0
mov dword [esp + 0x14], ebx
mov cl, byte [esp + 0x22]
movzx edx, byte [esp + 0x22]
movzx eax, dl
neg eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0xe0], ebx
mov dword [0x100745a0], ebx
mov byte [esp + 0x52], bl
mov dword [esp + 0x12c], 0xd989
mov dword [esp + 0x1d4], ebx
mov dword [esp + 0xe8], 0x11ffffff
mov ebp, 2
mov dword [esp + 0x1d0], ebp
mov cl, 0x3c
sub cl, byte [0x100745a4]
mov dword [0x10074598], ebx
mov dword [0x1007459c], ebx
mov dword [esp + 0x220], 0x28
mov dword [0x10074590], 0xd980
mov dword [0x1007458c], 0x1554
mov eax, dword [0x1007458c]
add eax, 0x28
mov byte [0x10074588], bl
movzx edx, byte [0x10074588]
mov dword [esp + 0x144], eax
lea eax, [edx + eax + 0x4d05187b]
mov dword [esp + 0x134], eax
mov dword [0x10074584], ebx
mov byte [0x10074581], 4
mov eax, dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x260], 0xda88
mov dword [0x100745a0], eax
mov dword [esp + 0xe0], eax
cmp eax, 0xb
ja 0x1000655c
mov al, 7
sub al, cl
push 0x108
movzx ecx, al
lea edx, [esp + 0xec]
push edx
push ecx
lea edx, [ebp + 9]
mov ecx, 0x11ffffff
call fcn.1001eb60
mov dword [esp + 0x18], eax
mov dx, word [0x10074590]
movzx ecx, byte [esp + 0x18]
movzx eax, dx
or eax, ecx
cmp eax, 0x2c
jb 0x100065fb
movzx edx, byte [esp + 0x22]
and dl, 1
movzx ax, dl
movzx edx, byte [esp + 0x22]
movzx ecx, ax
and dl, 1
movzx ax, dl
add ax, 0xa
movzx eax, ax
mov byte [0x10074580], bl
cmp cx, ax
je 0x100065e8
sub eax, ecx
movzx esi, ax
jmp 0x100065b0
lea ecx, [esp + 0x22]
push ecx
lea edx, [esp + 0x128]
push edx
push 0xffffff
push 0xbb
lea eax, [esp + 0x55]
push eax
push 0x28
mov edx, 0x100745a0
lea ecx, [esp + 0x144]
call fcn.1001ea10
sub esi, edi
mov byte [0x10074580], al
jne 0x100065b0
movsx eax, byte [0x10074580]
cdq
mov dword [0x10074598], eax
mov dword [0x1007459c], edx
mov eax, dword [0x10074598]
mov ecx, dword [0x1007459c]
or al, byte [esp + 0x18]
movsx edx, byte [esp + 0x134]
and edx, dword [0x100745a4]
mov byte [esp + 0x13], al
lea eax, [esp + 0x13c]
push eax
push 0xffffffffffffff89
mov dword [0x10074584], edx
movsx edx, byte [0x10074581]
lea ecx, [esp + 0x5a]
push ecx
push edx
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x158]
push ecx
lea edx, [esp + 0x124]
push edx
push 0xffffffffffffff80
push 0x15
call fcn.100171b0
mov ecx, dword [0x1007458c]
mov edx, ecx
shl edx, 4
add edx, ecx
add esp, 0x24
mov byte [0x10074588], al
cmp dword [0x10074584], edx
ja 0x1000668f
lea edx, [esp + 0xe8]
lea ecx, [esp + 0x1d0]
call fcn.10004b90
mov byte [0x10074588], al
mov cl, byte [esp + 0x13]
or cl, al
movzx eax, cl
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x100], ebx
mov dword [0x1007457c], ebp
mov edx, dword [0x1007457c]
mov eax, dword [0x1007457c]
mov ecx, dword [0x1007457c]
add edx, 0xfffffffb
or edx, 0x78
or eax, ecx
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x6c], eax
ja 0x10006701
mov eax, dword [0x1007457c]
push 0x1007457c
lea edx, [esp + 0x70]
push edx
neg eax
push eax
push ebx
lea ecx, [esp + 0x110]
push ecx
push ebx
mov ecx, 0x1007457c
call fcn.1001ea10
mov dword [esp + 0x100], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
imul eax, eax, 0xe0
and edx, 0xc0380020
mov dword [esp + 0xc4], edx
mov dword [esp + 0x228], 0xe
mov word [esp + 0x1c], ax
mov cx, word [esp + 0x1c]
movzx eax, cx
imul eax, eax, 0x80004002
mov dword [0x10074578], eax
mov dword [esp + 0x104], ebx
movsx ecx, byte [esp + 0x104]
imul ecx, eax
lea eax, [ecx*4]
mov dword [esp + 0x108], ebx
mov ecx, dword [esp + 0x104]
and cx, 5
lea edx, [esp + 0x104]
mov word [0x10074574], ax
mov dword [0x10074570], edx
mov edx, dword [esp + 0x108]
mov dx, word [esp + 0x1c]
mov dword [0x1007456c], 0x8000
add cx, word [0x1007456c]
mov eax, 0xaa
add cx, ax
movzx eax, word [0x10074574]
movzx ecx, cx
mov dword [esp + 0xcc], ecx
movzx ecx, dx
add ecx, eax
mov eax, dword [esp + 0x18]
movzx edx, byte [esp + 0xcc]
or eax, ecx
mov ecx, dword [esp + 0xc4]
add ecx, 0xe
and eax, ecx
add eax, edx
mov dword [esp + 0xd4], eax
cmp eax, 0xaa
jne 0x100067f4
mov eax, dword [0x10075a24]
mov dword [0x10075808], eax
movzx ecx, word [0x10074574]
add ecx, 0xe
mov dword [0x10074568], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
add cl, al
sub eax, dword [esp + 0xd4]
movsx edx, cl
mov ecx, dword [0x10074578]
lea edx, [edx + ecx + 2]
mov dword [esp + 0x14c], edx
lea ecx, [esp + 0x14c]
mov dword [0x10074564], ecx
mov dword [esp + 0x154], 4
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
movzx eax, byte [esp + 0xcc]
mov cl, byte [0x10074568]
add al, al
add al, byte [esp + 0xd4]
sub cl, 3
imul cl
mov cl, al
mov dword [esp + 0x14], edx
mov dl, byte [esp + 0x154]
mov eax, dword [0x10074564]
mov al, byte [eax]
sub al, dl
mov edx, dword [esp + 0x14]
imul cl
movzx ecx, al
push 3
or ecx, edx
push ebx
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x64]
push ecx
mov edx, eax
push edx
mov eax, ecx
push eax
push ecx
mov edx, ecx
lea ecx, [esp + 0x78]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x29c], 3
mov dword [esp + 0x74], ebx
call fcn.10004300
movzx eax, ax
mov dword [esp + 0x5c], eax
add eax, 0xf
cmp eax, dword [esp + 0x58]
ja 0x10006926
mov dword [esp + 0x15c], ebx
mov dx, word [esp + 0x15c]
mov eax, 0x13a
add dx, ax
movzx eax, dx
add al, byte [esp + 0x58]
mov byte [esp + 0x2d], 4
mov dl, byte [esp + 0x2d]
or dl, 0x2d
add al, 0x18
sub dl, 8
or al, dl
cbw
lea ecx, [esp + 0x2d]
movzx eax, ax
mov dword [0x10074560], ecx
movzx ecx, ax
mov dword [0x1007455c], edi
mov dword [0x10074558], 0x1007455c
mov dword [esp + 0x5c], ecx
xor eax, eax
mov byte [esp + 0xb1], 0xa4
mov byte [0x10074555], 0x20
mov byte [0x10074554], 0x2a
mov dl, 0x20
mov esi, 0x8007004f
jmp 0x10006950
lea ecx, [esp + 0x164]
mov dword [0x10074550], ecx
mov ecx, 0x10
mov word [0x1007454c], cx
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x24]
add ecx, 0x23
or eax, 0x4000001b
or eax, ecx
lea ecx, [eax + 0xa3]
and ecx, 0x100
mov dword [0x10074548], 0xc
or ecx, dword [0x10074548]
inc dl
or ecx, 0xc0a9c863
sub al, cl
mov dword [esp + 0x164], edi
movsx eax, al
cmp dl, byte [0x10074554]
jne 0x10006950
mov esi, 3
mov byte [esp + 0x56], 7
mov dword [esp + 0xdc], esi
mov edx, dword [esp + 0xdc]
cmp edx, esi
jne 0x100069e7
mov eax, dword [0x10075808]
push 0x1000
push 0x10074778
push eax
call fcn.100205a0
add esp, 0xc
mov al, byte [esp + 0x56]
movzx ecx, byte [esp + 0xdc]
add cl, 0xc
mov byte [esp + 0x9e], cl
mov byte [esp + 0x47], 4
lea edx, [esp + 0x47]
mov dword [0x10074544], edx
mov ecx, dword [0x10074544]
mov dl, byte [ecx]
mov eax, dword [0x10075808]
mov dword [0x10074748], eax
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x230], esi
mov dword [0x10074540], 0xfffffffa
mov dword [0x1007453c], 0xc00ce55e
mov dword [0x10074538], edi
mov byte [esp + 0xb5], 0xbc
mov dword [0x10074534], 0xffffffbf
mov byte [0x10074530], 0xd7
movzx cx, byte [0x10074530]
mov edx, 4
sub dx, cx
movzx ecx, byte [0x10074530]
movzx eax, dx
add cl, al
mov byte [esp + 0x41], cl
lea edx, [esp + 0x41]
mov dword [0x1007452c], edx
mov byte [esp + 0x13], bl
mov byte [esp + 0x50], 0x13
lea eax, [esp + 0x50]
mov dword [0x10074528], eax
mov dword [esp + 0x268], 0x200
mov dword [esp + 0x238], 0x4e
mov dword [esp + 0x24], 0x270
mov ecx, dword [esp + 0x24]
add ecx, 0x10
mov dword [esp + 0x290], 0x10
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov edx, dword [0x10074528]
mov cl, byte [edx]
or eax, esi
mov dword [esp + 0x24], eax
movzx eax, byte [0x10074540]
mov dl, 0x4e
imul dl
add cl, 3
or cl, 0x13
add cl, al
mov al, byte [esp + 0x24]
and al, 0x4c
or cl, al
mov byte [esp + 0x13], cl
movzx eax, byte [esp + 0x13]
cdq
mov dword [esp + 0x1c4], eax
mov esi, 0x18
xor eax, eax
mov dword [esp + 0x1c8], edx
mov dword [0x10074524], esi
mov dword [esp + 0xe4], eax
mov dword [0x10074520], 4
mov dword [esp + 0x74], ebx
lea ecx, [ecx]
lea ecx, [esp + 0x74]
push ecx
push ebx
mov edx, ecx
push edx
lea eax, [eax + eax - 0x10]
push eax
push 0xf
lea ecx, [esp + 0xf8]
mov edx, 0x10074520
push ecx
mov ecx, edx
call fcn.10007c10
mov ecx, dword [esp + 0x74]
add ecx, edi
mov dword [esp + 0xe4], eax
mov dword [esp + 0x74], ecx
cmp ecx, dword [0x10074520]
jne 0x10006b40
mov dword [esp + 0xec], 0xffc1
mov al, byte [esp + 0xec]
lea edx, [esp + 0xec]
mov dword [0x1007451c], edx
add al, 0x16
mov dword [esp + 0x240], 0x16
mov dword [esp + 0x270], ebx
mov byte [0x10074518], al
mov dword [esp + 0x1ec], 0x2000
mov dword [0x10074510], ebx
mov dword [0x10074514], ebx
mov byte [esp + 0x7f], 8
mov dword [esp + 0x1f4], 0x14
mov dword [0x1007450c], esi
mov dword [esp + 0x1fc], ebx
mov dword [esp + 0x70], ebx
mov byte [0x10074508], bl
mov dword [esp + 0x60], ebx
mov byte [0x10074508], 0x11
mov cl, byte [0x10074508]
mov edx, 0x60
mov dword [esp + 0x60], edx
cmp cl, dl
ja 0x10006ccc
mov dword [0x10074504], 0xfffffd38
mov dl, byte [0x10074508]
mov ecx, dword [0x10074504]
mov dword [esp + 0x16c], ecx
lea ecx, [esp + 0x16c]
mov dword [0x10074500], ecx
mov ecx, dword [ecx]
and ecx, dword [0x10074504]
mov dword [0x100744fc], ebx
lea edx, [ecx - 0x3c]
mov dword [0x100744fc], edx
mov edx, dword [0x100744fc]
add ecx, 0xffffffcd
xor eax, eax
mov dword [esp + 0x3c], ebx
cmp edx, ecx
je 0x10006ce7
mov esi, 0x11c
mov edi, edi
mov dword [0x100744f8], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0xf4], esi
lea eax, [esp + 0xf4]
mov dword [0x100744f4], eax
mov eax, dword [esp + 0xf4]
mov edx, dword [0x100744f4]
mov edx, dword [edx]
and eax, ecx
add eax, 0xfffffffc
add edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
mov dword [0x100744f8], eax
mov eax, dword [0x100744f8]
add dword [0x100744fc], edi
cdq
mov dword [esp + 0x3c], edx
mov edx, dword [0x100744fc]
cmp edx, ecx
jne 0x10006c70
jmp 0x10006ce7
push ebx
push 8
lea eax, [esp + 0x68]
push eax
mov ecx, eax
push ecx
lea eax, [esp + 0x80]
push eax
push 8
push ecx
call fcn.10006f60
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x70]
mov dword [0x100744f0], 0xa5
mov dword [esp + 0x204], ebx
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0x18]
mov al, 0x20
sub al, cl
and al, 0xc8
movsx edx, al
mov ebp, 0x20
mov dword [esp + 0x20c], ebp
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], ebx
mov byte [esp + 0x23], bl
mov dword [esp + 0xb8], 0x847beb3f
mov dword [esp + 0xbc], ebx
mov dword [0x100744ec], ebx
mov eax, edi
mov word [esp + 0x80], ax
mov dword [esp + 0x29c], 0xb4759c90
mov dword [esp + 0x2a0], 0xd9bf867
xor esi, esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x214], 0x10
call dword [0x10074748]
mov ecx, dword [esp + 0x30]
mov al, cl
sub al, byte [esp + 0xb8]
dec ecx
movzx edx, al
mov byte [esp + 0x24], al
cmp ecx, edx
jae 0x10006db9
push edx
lea ecx, [esp + 0xbc]
push ecx
push ebx
lea edx, [esp + 0x3c]
push edx
mov eax, ecx
push eax
lea ecx, [esp + 0x37]
push ecx
push edx
mov edx, 0xf0000000
lea ecx, [esp + 0x4c]
call fcn.1001ec00
jmp 0x10006ded
movsx ecx, byte [esp + 0x23]
push ecx
mov eax, edi
sub eax, edx
cdq
push edx
mov edx, dword [esp + 0xc0]
push eax
mov eax, dword [esp + 0x30]
push eax
push edx
lea eax, [esp + 0x44]
push eax
mov eax, ecx
cdq
push edx
push eax
lea edx, [esp + 0xd8]
lea ecx, [esp + 0x50]
call fcn.100173e0
mov edx, dword [esp + 0xb8]
movsx ecx, al
mov byte [esp + 0x23], al
movzx eax, byte [esp + 0x80]
add eax, 0x9c3f
or edx, 0x1c
mov dword [esp + 0x30], ecx
mov dword [0x100744ec], eax
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jb 0x10006e28
call fcn.10007360
movsx esi, al
sub dword [esp + 0x30], esi
mov dword [esp + 0x38], 0xc
mov dword [esp + 0x3c], ebx
mov dword [0x100744e8], ebx
mov byte [0x100744e4], 8
movzx edx, byte [0x100744e4]
movzx ecx, dl
mov eax, 0x13d
sub eax, ecx
mov ecx, dword [0x100744e8]
or ecx, eax
mov dword [esp + 0x21c], ecx
mov eax, ecx
and eax, 4
sub eax, ecx
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [0x100744e0], 6
add edx, edx
or edx, 0xffff
mov dword [0x100744dc], edx
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x13], bl
mov cl, byte [esp + 0x13]
movzx edx, byte [esp + 0x13]
mov byte [esp + 0x13], dl
movzx eax, byte [esp + 0x13]
or eax, 0xfffffff4
mov byte [esp + 0x13], al
movzx ecx, byte [esp + 0x13]
add ecx, 0x11
mov byte [esp + 0x13], cl
mov dl, byte [esp + 0x13]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x224], ebp
mov byte [esp + 0x86], 0x14
mov dword [esp + 0x22c], ebp
mov dword [esp + 0x14], 0x280
and dword [esp + 0x14], 0x97
or dword [esp + 0x14], ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x234], 0xff00ff
mov dword [esp + 0x23c], 0x1f
xor ecx, ecx
mov word [0x100744d8], cx
mov dword [esp + 0x18], ebx
mov dword [0x100744d4], ebx
mov dword [0x100744d0], 0xd
mov edx, 8
sub edx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [0x100744d0]
mov eax, edi
pop edi
pop esi
mov dword [esp + 0x1c], 0x80070057
mov edx, dword [esp + 0x1c]
pop ebp
pop ebx
add esp, 0x294
ret