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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x114
mov eax, dword [0x66a074]
xor eax, esp
mov dword [esp + 0x110], eax
push ebx
push esi
mov esi, edx
xor eax, eax
mov edx, ecx
mov dword [esp + 0x70], eax
xor ecx, ecx
mov dword [esp + 0xc], edx
push edi
mov edi, dword [ebp + 8]
test byte [edx + 0x15], 2
mov dword [esp + 0x2c], edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x20], ecx
je 0x41bb96
mov eax, dword [edi]
add edi, 4
mov dword [esp + 0x2c], edi
mov dword [esp + 0x54], eax
mov byte [esp + 0x17], 1
jmp 0x41bb9a
mov byte [esp + 0x17], al
movsx eax, byte [esi]
test eax, eax
je case.default.0x41bf92
movsd xmm0, qword [0x634510]
movsd xmm5, qword [0x634240]
movsd qword [esp + 0x90], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [0x6341d0]
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [0x634170]
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [0x6341f0]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [0x634370]
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [0x634330]
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [0x634140]
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [0x634310]
movsd qword [esp + 0x78], xmm5
movsd qword [esp + 0xc8], xmm0
cmp eax, 0x25
je 0x41bcad
mov ecx, esi
mov dword [esp + 0x20], ecx
mov al, byte [esi + 1]
inc esi
test al, al
je 0x41bc5e
cmp al, 0x25
jne 0x41bc52
mov edi, dword [edx + 0x10]
mov dword [esp + 0x4c], esi
sub esi, ecx
add edi, esi
cmp edi, dword [edx + 8]
jb 0x41bc7f
mov edx, ecx
mov ecx, dword [esp + 0x10]
push esi
call fcn.0041d460
add esp, 4
jmp 0x41bc98
test esi, esi
je 0x41bc9c
mov eax, dword [edx + 4]
push esi
sub eax, esi
mov dword [edx + 0x10], edi
push ecx
add eax, edi
push eax
call fcn.005b96a0
add esp, 0xc
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x4c]
cmp byte [esi], 0
je case.default.0x41bf92
mov edi, dword [esp + 0x2c]
movsx ecx, byte [esi + 1]
inc esi
test ecx, ecx
je 0x41d278
mov byte [esp + 0x36], 0
mov byte [esp + 0x1f], 0
mov byte [esp + 0x37], 0
mov byte [esp + 0x2b], 0
mov byte [esp + 0x16], 0
mov byte [esp + 0xf], 0
lea eax, [ecx - 0x20]
cmp eax, 0x10
ja case.0x41bce7.34
movzx eax, byte [eax + 0x41d2f0]
jmp dword [eax*4 + 0x41d2d0]
mov byte [esp + 0xf], 1
jmp 0x41bd1d
mov byte [esp + 0x16], 0x2b
jmp 0x41bd1d
mov byte [esp + 0x16], 0x20
jmp 0x41bd1d
mov byte [esp + 0x37], 1
jmp 0x41bd1d
mov byte [esp + 0x1f], 1
jmp 0x41bd1d
mov byte [esp + 0x36], 1
jmp 0x41bd1d
mov byte [esp + 0x2b], 0x2c
movsx ecx, byte [esi + 1]
inc esi
test ecx, ecx
jne 0x41bcd8
mov dword [esp + 0x4c], esi
cmp ecx, 0x2a
jne 0x41bdf1
cmp byte [esp + 0x17], 0
je 0x41bdb0
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x41bd54
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x60]
jmp 0x41bdb9
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x54]
mov dword [edx + 4], eax
movzx eax, word [ecx + 8]
test al, 4
je 0x41bd77
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esp + 0x64], edx
jmp 0x41bdb9
test al, 8
je 0x41bd8a
movsd xmm0, qword [ecx]
call fcn.00438a80
mov dword [esp + 0x64], edx
jmp 0x41bdb9
test al, 0x12
je 0x41bd99
call fcn.00438ae0
mov dword [esp + 0x64], edx
jmp 0x41bdb9
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x64], edx
jmp 0x41bdb9
mov eax, dword [edi]
add edi, 4
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], eax
test eax, eax
jns 0x41bde6
mov byte [esp + 0xf], 1
cmp eax, reloc.DSOUND.dll_DirectSoundCreate
jl 0x41bdde
movsx ecx, byte [esi + 1]
neg eax
inc esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x4c], esi
jmp 0x41be1c
mov dword [esp + 0x24], 0
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x4c], esi
jmp 0x41be1c
xor eax, eax
cmp ecx, 0x30
jl 0x41be13
cmp ecx, 0x39
jg 0x41be0f
lea eax, [eax + eax*4]
inc esi
lea eax, [eax - 0x18]
lea eax, [ecx + eax*2]
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x41bdf8
mov dword [esp + 0x4c], esi
and eax, 0x7fffffff
mov dword [esp + 0x24], eax
cmp ecx, 0x2e
jne 0x41bf05
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x4c], esi
cmp ecx, 0x2a
jne 0x41bedb
cmp byte [esp + 0x17], 0
je 0x41beb4
mov edi, dword [esp + 0x54]
mov edx, dword [edi + 4]
cmp dword [edi], edx
jg 0x41be58
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edi, dword [esp + 0x60]
jmp 0x41bebe
mov eax, dword [edi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [edi + 4], eax
movzx eax, word [ecx + 8]
test al, 4
je 0x41be77
mov edx, dword [ecx + 4]
mov edi, dword [ecx]
mov dword [esp + 0x64], edx
jmp 0x41bebe
test al, 8
je 0x41be8c
movsd xmm0, qword [ecx]
call fcn.00438a80
mov edi, eax
mov dword [esp + 0x64], edx
jmp 0x41bebe
test al, 0x12
je 0x41be9d
call fcn.00438ae0
mov edi, eax
mov dword [esp + 0x64], edx
jmp 0x41bebe
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x64], edx
jmp 0x41bebe
add edi, 4
mov dword [esp + 0x2c], edi
mov edi, dword [edi - 4]
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x4c], esi
test edi, edi
jns 0x41bf0c
cmp edi, reloc.DSOUND.dll_DirectSoundCreate
jl 0x41bf05
neg edi
jmp 0x41bf08
xor edi, edi
cmp ecx, 0x30
jl 0x41befd
cmp ecx, 0x39
jg 0x41bef9
lea edi, [edi + edi*4]
inc esi
lea edi, [edi - 0x18]
lea edi, [ecx + edi*2]
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x41bee2
mov dword [esp + 0x4c], esi
and edi, 0x7fffffff
jmp 0x41bf08
or edi, 0xffffffff
mov dword [esp + 0x38], edi
cmp ecx, 0x6c
jne 0x41bf34
movsx ecx, byte [esi + 1]
inc esi
mov byte [esp + 0x2a], 1
mov dword [esp + 0x4c], esi
cmp ecx, 0x6c
jne 0x41bf39
movsx ecx, byte [esi + 1]
inc esi
mov byte [esp + 0x2a], 2
mov dword [esp + 0x4c], esi
jmp 0x41bf39
mov byte [esp + 0x2a], 0
mov dword [esp + 0x50], 0x617b28
xor esi, esi
mov byte [esp + 0x15], 0x11
mov edx, 0x617b28
nop dword [eax]
movsx eax, byte [edx]
cmp ecx, eax
je 0x41bf6d
add edx, 6
inc esi
cmp edx, 0x617bb2
jl 0x41bf50
mov dl, byte [esp + 0x15]
mov ecx, dword [esp + 0x50]
jmp 0x41bf86
lea eax, [esi + esi*2]
mov dl, byte [eax*2 + 0x617b2b]
lea ecx, [eax*2 + 0x617b28]
mov dword [esp + 0x50], ecx
mov byte [esp + 0x15], dl
movzx eax, dl
cmp eax, 0x10
ja case.default.0x41bf92
jmp dword [eax*4 + 0x41d304]
mov al, 1
mov byte [esp + 0x2b], 0
jmp 0x41bfb1
mov al, byte [esp + 0x2a]
mov byte [esp + 0x2b], 0
jmp 0x41bfb1
mov al, byte [esp + 0x2a]
test byte [ecx + 2], 1
je 0x41c0a8
cmp byte [esp + 0x17], 0
je 0x41c04b
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x41bfef
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov cl, byte [esp + 0x16]
mov dword [esp + 0x30], edx
jmp 0x41c141
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
movzx eax, word [ecx + 8]
test al, 4
je 0x41c00e
mov edx, dword [ecx + 4]
mov esi, dword [ecx]
mov dword [esp + 0x30], edx
jmp 0x41c06d
test al, 8
je 0x41c023
movsd xmm0, qword [ecx]
call fcn.00438a80
mov esi, eax
mov dword [esp + 0x30], edx
jmp 0x41c06d
test al, 0x12
je 0x41c034
call fcn.00438ae0
mov esi, eax
mov dword [esp + 0x30], edx
jmp 0x41c06d
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x30], edx
jmp 0x41c06d
mov ecx, dword [esp + 0x2c]
test al, al
je 0x41c061
cmp al, 2
jne 0x41c061
mov esi, dword [ecx]
add ecx, 8
mov edx, dword [ecx - 4]
jmp 0x41c069
mov eax, dword [ecx]
add ecx, 4
cdq
mov esi, eax
mov dword [esp + 0x2c], ecx
test edx, edx
jg 0x41bfe2
jl 0x41c07f
test esi, esi
jae 0x41bfe2
test esi, esi
jne 0x41c096
cmp edx, 0x80000000
jne 0x41c096
mov dword [esp + 0x30], edx
mov cl, 0x2d
jmp 0x41c13d
neg esi
mov cl, 0x2d
adc edx, 0
neg edx
mov dword [esp + 0x30], edx
jmp 0x41c13d
cmp byte [esp + 0x17], 0
je 0x41c116
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jle 0x41c0ff
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
movzx eax, word [ecx + 8]
test al, 4
je 0x41c0d9
mov edx, dword [ecx + 4]
mov esi, dword [ecx]
mov dword [esp + 0x30], edx
jmp 0x41c13b
test al, 8
je 0x41c0ee
movsd xmm0, qword [ecx]
call fcn.00438a80
mov esi, eax
mov dword [esp + 0x30], edx
jmp 0x41c13b
test al, 0x12
je 0x41c0ff
call fcn.00438ae0
mov esi, eax
mov dword [esp + 0x30], edx
jmp 0x41c13b
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x30], edx
jmp 0x41c13b
mov ecx, dword [esp + 0x2c]
test al, al
je 0x41c12c
cmp al, 2
jne 0x41c12c
mov esi, dword [ecx]
add ecx, 8
mov edx, dword [ecx - 4]
jmp 0x41c133
mov esi, dword [ecx]
add ecx, 4
xor edx, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
xor cl, cl
mov byte [esp + 0x16], cl
mov eax, esi
or eax, edx
jne 0x41c14b
mov byte [esp + 0x37], al
cmp byte [esp + 0x36], 0
je 0x41c168
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x24]
setne al
sub ecx, eax
cmp edi, ecx
cmovl edi, ecx
mov dword [esp + 0x38], edi
cmp edi, 0x25
jge 0x41c182
lea eax, [esp + 0xd0]
mov dword [esp + 0x3c], 0x46
mov dword [esp + 0x18], eax
jmp 0x41c1ce
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [esp + 0x3c], eax
mov ecx, edx
mov eax, edi
cdq
add dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
adc ecx, edx
add eax, 0xa
mov dword [esp + 0x3c], eax
adc ecx, 0
push ecx
push eax
call fcn.0041b100
mov ecx, eax
mov dword [esp + 0x20], eax
add esp, 8
mov dword [esp + 0x74], ecx
test ecx, ecx
je 0x41cfc8
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
dec ecx
add ecx, eax
cmp byte [esp + 0x15], 0xf
mov dword [esp + 0x20], ecx
jne 0x41c23a
push 0
push 0xa
push edx
push esi
call fcn.005b81c0
mov dword [esp + 0x58], eax
lea ecx, [eax + eax*4]
mov eax, esi
add ecx, ecx
sub eax, ecx
mov dword [esp + 0x40], eax
cmp eax, 4
jge 0x41c218
push 0
push 0xa
push edx
push dword [esp + 0x64]
call fcn.005dd730
cmp eax, 1
jne 0x41c21c
test edx, edx
jne 0x41c21c
xor edx, edx
jmp 0x41c220
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
mov al, byte [edx*2 + 0x617435]
mov byte [ecx - 1], al
sub ecx, 2
mov al, byte [edx*2 + str.thstndrd]
mov byte [ecx], al
mov edx, dword [esp + 0x50]
movzx eax, byte [edx + 4]
add eax, 0x6155dc
mov dword [esp + 0x58], eax
movzx eax, byte [edx + 1]
mov edi, dword [esp + 0x58]
cdq
mov dword [esp + 0x60], eax
mov eax, edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x40], eax
push ebx
push eax
push dword [esp + 0x68]
dec ecx
push edx
push esi
mov dword [esp + 0x34], ecx
call fcn.005dd130
mov dword [esp + 0x60], ebx
pop ebx
mov esi, eax
mov al, byte [edi + ecx]
mov ecx, dword [esp + 0x20]
mov byte [ecx], al
mov eax, dword [esp + 0x40]
test edx, edx
ja 0x41c262
jb 0x41c292
test esi, esi
jne 0x41c262
mov esi, dword [esp + 0x18]
mov eax, esi
mov edx, dword [esp + 0x3c]
sub eax, ecx
mov edi, dword [esp + 0x38]
dec edx
add edx, eax
cmp edx, edi
jge 0x41c2bd
mov eax, edi
sub eax, edx
mov edx, edi
nop
dec ecx
mov byte [ecx], 0x30
sub eax, 1
jne 0x41c2b0
mov dword [esp + 0x20], ecx
cmp byte [esp + 0x2b], 0
je 0x41c305
lea eax, [edx - 1]
mov esi, 3
cdq
idiv esi
mov esi, eax
sub ecx, esi
mov dword [esp + 0x20], ecx
lea edi, [edx + 1]
xor edx, edx
test esi, esi
jle 0x41c301
lea eax, [esi + edx]
mov al, byte [eax + ecx]
mov byte [edx + ecx], al
sub edi, 1
jne 0x41c2fc
mov al, byte [esp + 0x2b]
inc edx
dec esi
mov edi, 3
mov byte [edx + ecx], al
inc edx
test esi, esi
jg 0x41c2e0
mov esi, dword [esp + 0x18]
mov dl, byte [esp + 0x16]
test dl, dl
je 0x41c314
dec ecx
mov dword [esp + 0x20], ecx
mov byte [ecx], dl
cmp byte [esp + 0x37], 0
je 0x41c344
mov eax, dword [esp + 0x50]
mov al, byte [eax + 5]
test al, al
je 0x41c344
movzx eax, al
add eax, 0x614a08
mov dl, byte [eax]
test dl, dl
je 0x41c344
dec ecx
lea eax, [eax + 1]
mov byte [ecx], dl
mov dl, byte [eax]
test dl, dl
jne 0x41c334
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x3c]
sub esi, ecx
dec esi
add esi, eax
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov al, byte [esp + 0xf]
sub edi, esi
mov dword [esp + 0x24], edi
test edi, edi
jle 0x41d1d8
test al, al
jne 0x41c3b7
mov eax, dword [edx + 0x10]
xor ecx, ecx
mov dword [esp + 0x18], eax
mov eax, edi
cdq
add dword [esp + 0x18], eax
adc ecx, edx
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
js 0x41c3a5
jg 0x41c38e
cmp dword [esp + 0x18], eax
jb 0x41c3a5
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
call fcn.0041d350
mov edx, dword [esp + 0x10]
mov edi, eax
test edi, edi
jle 0x41c3b7
mov ecx, dword [edx + 0x10]
dec edi
mov eax, dword [edx + 4]
mov byte [ecx + eax], 0x20
inc dword [edx + 0x10]
test edi, edi
jg 0x41c3a5
mov edi, dword [edx + 0x10]
add edi, esi
cmp edi, dword [edx + 8]
jb 0x41d166
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
push esi
call fcn.0041d460
add esp, 4
jmp 0x41d183
cmp byte [esp + 0x17], 0
je 0x41c45f
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jle 0x41c44a
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
movzx eax, word [ecx + 8]
test al, 8
je 0x41c415
movsd xmm2, qword [ecx]
mov dl, byte [esp + 0x15]
movsd qword [esp + 0x58], xmm2
jmp 0x41c475
test al, 4
je 0x41c432
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.005ddb00
mov dl, byte [esp + 0x15]
movaps xmm2, xmm0
movsd qword [esp + 0x58], xmm2
jmp 0x41c475
test al, 0x12
je 0x41c44a
call fcn.00438b50
mov dl, byte [esp + 0x15]
movaps xmm2, xmm0
movsd qword [esp + 0x58], xmm0
jmp 0x41c475
movsd xmm2, qword [esp + 0x80]
mov dl, byte [esp + 0x15]
movsd qword [esp + 0x58], xmm2
jmp 0x41c475
mov ecx, dword [esp + 0x2c]
add ecx, 8
mov dword [esp + 0x2c], ecx
movsd xmm2, qword [ecx - 8]
movsd qword [esp + 0x58], xmm2
movsd xmm3, qword [esp + 0x80]
test edi, edi
mov eax, 6
cmovs edi, eax
comisd xmm3, xmm2
mov dword [esp + 0x38], edi
jbe 0x41c4a8
xorps xmm2, xmmword [esp + 0x90]
mov dh, 0x2d
movsd qword [esp + 0x58], xmm2
mov byte [esp + 0x16], dh
jmp 0x41c4ac
mov dh, byte [esp + 0x16]
cmp dl, 3
jne 0x41c4ba
test edi, edi
jle 0x41c4ba
dec edi
mov dword [esp + 0x38], edi
movsd xmm1, qword [esp + 0xa0]
and edi, 0xfff
movsd xmm4, qword [esp + 0x88]
cmp edi, 8
jb 0x41c515
lea ecx, [edi - 8]
shr ecx, 3
inc ecx
mov eax, ecx
neg eax
lea edi, [edi + eax*8]
nop word [eax + eax]
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
mulsd xmm1, xmm4
sub ecx, 1
jne 0x41c4f0
test edi, edi
jle 0x41c529
nop dword [eax]
dec edi
mulsd xmm1, xmm4
test edi, edi
jg 0x41c520
cmp dl, 1
jne 0x41c53b
movaps xmm0, xmm1
addsd xmm2, xmm0
movsd qword [esp + 0x58], xmm2
movsd qword [esp + 0x60], xmm2
xor edi, edi
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [esp + 0x60]
ucomisd xmm0, qword [esp + 0x40]
mov dword [esp + 0x30], edi
lahf
test ah, 0x44
jnp 0x41c576
mov ecx, 0x61f6bc
lea esi, [edi + 3]
mov dword [esp + 0x20], ecx
jmp 0x41c34d
comisd xmm2, xmm3
jbe 0x41c6a9
movsd xmm5, qword [esp + 0xb0]
comisd xmm2, xmm5
movsd xmm6, qword [esp + 0xa8]
movaps xmm3, xmm6
jb 0x41c5c0
nop dword [eax + eax]
cmp edi, 0x15e
jg 0x41c5bc
mulsd xmm3, xmm5
add edi, 0x64
movaps xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm2, xmm0
jae 0x41c5a0
mov dword [esp + 0x30], edi
movsd xmm5, qword [esp + 0xb8]
movaps xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm2, xmm0
jb 0x41c5f2
cmp edi, 0x15e
jg 0x41c5ee
movaps xmm3, xmm0
add edi, 0xa
mulsd xmm0, xmm5
comisd xmm2, xmm0
jae 0x41c5d6
mov dword [esp + 0x30], edi
movsd xmm5, qword [esp + 0x78]
movaps xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm2, xmm0
jb 0x41c61f
cmp edi, 0x15e
jg 0x41c61b
movaps xmm3, xmm0
inc edi
mulsd xmm0, xmm5
comisd xmm2, xmm0
jae 0x41c605
mov dword [esp + 0x30], edi
divsd xmm2, xmm3
movsd xmm0, qword [esp + 0xc0]
comisd xmm0, xmm2
movsd qword [esp + 0x58], xmm2
jbe 0x41c658
movsd xmm3, qword [esp + 0xc8]
mulsd xmm2, xmm3
sub edi, 8
comisd xmm0, xmm2
ja 0x41c641
mov dword [esp + 0x30], edi
movsd qword [esp + 0x58], xmm2
comisd xmm6, xmm2
jbe 0x41c675
nop
mulsd xmm2, xmm5
dec edi
comisd xmm6, xmm2
ja 0x41c660
mov dword [esp + 0x30], edi
movsd qword [esp + 0x58], xmm2
cmp edi, 0x15e
jle 0x41c6af
xor eax, eax
mov byte [esp + 0xd0], dh
test dh, dh
lea ecx, [esp + 0xd0]
mov dword [esp + 0x20], ecx
setne al
mov dword [esp + eax + 0xd0], 0x666e49
lea esi, [eax + 3]
jmp 0x41c34d
movsd xmm5, qword [esp + 0x78]
lea esi, [esp + 0xd0]
cmp dl, 1
je 0x41c6da
addsd xmm2, xmm1
comisd xmm2, xmm5
movsd qword [esp + 0x58], xmm2
jb 0x41c6da
mulsd xmm2, xmm4
inc edi
mov dword [esp + 0x30], edi
movsd qword [esp + 0x58], xmm2
mov ecx, dword [esp + 0x38]
cmp dl, 3
jne 0x41c70c
cmp byte [esp + 0x37], 0
sete byte [esp + 0x2b]
cmp edi, 0xfffffffc
jl 0x41c704
cmp edi, ecx
jg 0x41c704
sub ecx, edi
mov al, 1
mov dword [esp + 0x38], ecx
mov byte [esp + 0x15], al
jmp 0x41c718
mov al, 2
mov byte [esp + 0x15], al
jmp 0x41c718
mov al, byte [esp + 0x1f]
mov byte [esp + 0x2b], al
mov al, byte [esp + 0x15]
xor edx, edx
cmp al, 2
cmovne edx, edi
xor eax, eax
test edx, edx
mov dword [esp + 0x18], edx
cmovg eax, edx
cdq
mov dword [esp + 0x60], eax
mov eax, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x3c], edx
cdq
add ecx, eax
mov eax, dword [esp + 0x24]
adc dword [esp + 0x3c], edx
cdq
add ecx, eax
mov eax, dword [esp + 0x3c]
adc eax, edx
js 0x41c774
jg 0x41c756
cmp ecx, 0x37
jbe 0x41c774
add ecx, 0xf
adc eax, 0
push eax
push ecx
call fcn.0041b100
add esp, 8
mov dword [esp + 0x74], eax
mov esi, eax
test eax, eax
je 0x41cfc8
movzx eax, byte [esp + 0x1f]
mov ecx, dword [esp + 0x38]
test ecx, ecx
mov dword [esp + 0x20], esi
lea eax, [eax + eax*4]
lea edx, [eax*2 + 0x10]
setg al
or al, byte [esp + 0x1f]
or al, byte [esp + 0x37]
mov byte [esp + 0x2a], al
mov al, byte [esp + 0x16]
mov dword [esp + 0x40], edx
test al, al
je 0x41c7ab
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x18]
movsd xmm1, qword [esp + 0x58]
movsd xmm5, qword [esp + 0x78]
test eax, eax
jns 0x41c7c5
mov byte [esi], 0x30
inc esi
jmp 0x41c803
mov dword [esp + 0x18], eax
nop dword [eax]
test edx, edx
jg 0x41c7d8
mov al, 0x30
jmp 0x41c7ef
cvttsd2si eax, xmm1
dec edx
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm5
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x18]
sub eax, 1
mov dword [esp + 0x18], eax
jns 0x41c7d0
mov dword [esp + 0x40], edx
cmp byte [esp + 0x2a], 0
je 0x41c80e
mov byte [esi], 0x2e
inc esi
inc eax
mov edi, eax
neg edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x30]
test eax, eax
jns 0x41c8ec
cmp dword [esp + 0x18], 8
jb 0x41c8b9
mov edi, dword [esp + 0x18]
and edi, reloc.OLEAUT32.dll_VariantInit
jns 0x41c83f
dec edi
or edi, 0xfffffff8
inc edi
movaps xmm0, xmmword [0x634450]
neg edi
movaps xmm4, xmmword [0x6343f0]
xorps xmm2, xmm2
mov dword [esp + 0x18], edi
xorps xmm3, xmm3
mov edi, dword [esp + 0x30]
movaps xmmword [esp + 0x60], xmm0
movd xmm0, dword [esp + 0x60]
add eax, 8
movd dword [esi], xmm0
psubd xmm2, xmm4
movd xmm0, dword [esp + 0x60]
psubd xmm3, xmm4
movd dword [esi + 4], xmm0
add esi, 8
cmp eax, dword [esp + 0x18]
jl 0x41c862
paddd xmm2, xmm3
mov dword [esp + 0x18], eax
movaps xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd eax, xmm2
add ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
test eax, eax
jns 0x41c8ec
neg eax
mov edi, esi
mov ecx, eax
mov dword [esp + 0x18], eax
mov edx, ecx
mov eax, 0x30303030
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x38]
mov eax, edx
mov edi, dword [esp + 0x30]
add esi, eax
mov edx, dword [esp + 0x40]
sub ecx, eax
test ecx, ecx
jle 0x41c917
dec ecx
test edx, edx
jg 0x41c8f9
mov al, 0x30
jmp 0x41c910
cvttsd2si eax, xmm1
dec edx
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm5
mov byte [esi], al
inc esi
test ecx, ecx
jg 0x41c8f0
cmp byte [esp + 0x2b], 0
je 0x41c958
cmp byte [esp + 0x2a], 0
je 0x41c958
cmp byte [esi - 1], 0x30
lea eax, [esi - 1]
jne 0x41c93d
nop
mov esi, eax
lea eax, [esi - 1]
mov byte [esi], 0
cmp byte [eax], 0x30
je 0x41c930
cmp byte [esi - 1], 0x2e
lea eax, [esi - 1]
jne 0x41c958
cmp byte [esp + 0x1f], 0
je 0x41c953
mov byte [esi], 0x30
inc esi
jmp 0x41c958
mov esi, eax
mov byte [esi], 0
cmp byte [esp + 0x15], 2
jne 0x41c9f5
mov eax, dword [esp + 0x50]
movzx eax, byte [eax + 4]
mov al, byte [eax + 0x6155dc]
mov byte [esi], al
lea eax, [esi + 2]
mov dword [esp + 0x40], eax
mov eax, edi
cdq
xor eax, edx
sub eax, edx
test edi, edi
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x18]
sets cl
lea ecx, [ecx*2 + 0x2b]
mov byte [esi + 1], cl
mov esi, dword [esp + 0x40]
cmp eax, 0x64
jl 0x41c9c6
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, esi
mov al, cl
add al, 0x30
mov byte [edx], al
lea esi, [edx + 1]
imul eax, ecx, 0x64
sub edi, eax
mov dword [esp + 0x18], edi
mov eax, 0x66666667
imul edi
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, cl
add al, 0x30
mov byte [esi], al
mov al, cl
shl cl, 2
add al, cl
mov ecx, dword [esp + 0x18]
add al, al
sub cl, al
add cl, 0x30
mov byte [esi + 1], cl
add esi, 2
mov ecx, dword [esp + 0x20]
mov byte [esi], 0
sub esi, ecx
cmp byte [esp + 0x36], 0
je 0x41c34d
mov al, byte [esp + 0xf]
mov edi, dword [esp + 0x24]
test al, al
jne 0x41d15d
cmp esi, edi
jge 0x41d15d
mov edx, dword [esp + 0x24]
sub edi, esi
mov dword [esp + 0x60], edi
cmp edx, edi
jl 0x41ca3e
mov esi, ecx
sub esi, edi
mov al, byte [esi + edx]
mov byte [edx + ecx], al
dec edx
cmp edx, edi
jge 0x41ca33
xor eax, eax
cmp byte [esp + 0x16], al
setne al
test edi, edi
je 0x41ca69
lea edi, [eax + ecx]
mov ecx, dword [esp + 0x60]
mov edx, ecx
mov eax, 0x30303030
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov esi, edi
jmp 0x41c351
cmp byte [esp + 0x17], 0
jne 0x41ca92
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
add ecx, 4
mov dword [esp + 0x2c], ecx
mov ecx, dword [ecx - 4]
mov eax, dword [eax + 0x10]
mov dword [ecx], eax
mov ecx, dword [esp + 0x20]
xor edi, edi
xor esi, esi
jmp 0x41c351
lea ecx, [esp + 0xd0]
mov byte [esp + 0xd0], 0x25
mov dword [esp + 0x20], ecx
mov esi, 1
jmp 0x41c34d
cmp byte [esp + 0x17], 0
je 0x41cb68
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jle 0x41cb56
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
je 0x41cb56
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x41cb03
cmp byte [ecx + 0xa], 1
jne 0x41cb03
mov edx, dword [ecx + 0x10]
jmp 0x41cb11
test dl, 1
jne 0x41cb56
mov dl, 1
call fcn.00439510
mov edx, eax
mov esi, 1
test edx, edx
je 0x41cb56
mov cl, byte [edx]
mov byte [esp + 0xd0], cl
movsx ecx, cl
and ecx, 0xc0
cmp cl, 0xc0
jne 0x41cc32
mov cl, byte [edx + esi]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x41cc32
mov byte [esp + esi + 0xd0], cl
inc esi
cmp esi, 4
jl 0x41cb35
jmp 0x41cc32
mov byte [esp + 0xd0], 0
mov esi, 1
jmp 0x41cc32
mov ecx, dword [esp + 0x2c]
add ecx, 4
mov dword [esp + 0x2c], ecx
mov ecx, dword [ecx - 4]
cmp ecx, 0x80
jae 0x41cb88
mov esi, 1
jmp 0x41cc2b
cmp ecx, 0x800
jae 0x41cbb7
mov eax, ecx
mov esi, 2
shr eax, 6
and cl, 0x3f
and al, 0x1f
sub al, 0x40
add cl, 0x80
mov byte [esp + 0xd0], al
mov byte [esp + 0xd1], cl
jmp 0x41cc32
mov al, cl
mov edx, ecx
and al, 0x3f
shr edx, 6
add al, 0x80
and dl, 0x3f
mov byte [esp + 0x36], al
mov eax, ecx
shr eax, 0xc
cmp ecx, 0x10000
jae 0x41cbfd
and al, 0xf
mov esi, 3
sub al, 0x20
add dl, 0x80
mov byte [esp + 0xd0], al
mov al, byte [esp + 0x36]
mov byte [esp + 0xd1], dl
mov byte [esp + 0xd2], al
jmp 0x41cc32
shr ecx, 0x12
and al, 0x3f
add al, 0x80
and cl, 7
sub cl, 0x10
mov byte [esp + 0xd1], al
mov al, byte [esp + 0x36]
add dl, 0x80
mov byte [esp + 0xd2], dl
mov esi, 4
mov byte [esp + 0xd3], al
mov byte [esp + 0xd0], cl
cmp edi, 1
jle 0x41cd06
mov ecx, dword [esp + 0x24]
sub ecx, edi
mov eax, ecx
inc ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ecx
cmp ecx, 1
jle 0x41ccb6
cmp byte [esp + 0xf], 0
jne 0x41ccb6
mov ecx, dword [esp + 0x10]
cdq
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x18], ecx
xor ecx, ecx
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
adc ecx, edx
mov edx, dword [eax + 8]
js 0x41cc8c
jg 0x41cc7d
cmp dword [esp + 0x18], edx
jb 0x41cc8c
mov edx, dword [esp + 0x40]
mov ecx, eax
call fcn.0041d350
mov edx, eax
jmp 0x41cc90
mov edx, dword [esp + 0x40]
test edx, edx
jle 0x41ccae
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x10]
dec edx
mov eax, dword [edi + 4]
mov byte [ecx + eax], 0x20
inc dword [edi + 0x10]
test edx, edx
jg 0x41cc98
mov edi, dword [esp + 0x38]
mov dword [esp + 0x24], 0
dec edi
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x10]
nop
mov eax, dword [edi + 0x10]
lea ecx, [eax + esi]
cmp ecx, dword [edi + 8]
jb 0x41ccdf
push esi
lea edx, [esp + 0xd4]
mov ecx, edi
call fcn.0041d460
add esp, 4
jmp 0x41ccff
test esi, esi
je 0x41ccff
push esi
lea eax, [esp + 0xd4]
mov dword [edi + 0x10], ecx
push eax
mov eax, dword [edi + 4]
sub eax, esi
add eax, ecx
push eax
call fcn.005b96a0
add esp, 0xc
sub dword [esp + 0x40], 1
jne 0x41ccc0
lea ecx, [esp + 0xd0]
mov dword [esp + 0x20], ecx
jmp 0x41d054
cmp byte [esp + 0x17], 0
je 0x41cd79
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x41cd2e
xor ecx, ecx
mov dl, 5
jmp 0x41cd87
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
jne 0x41cd42
mov dl, 5
jmp 0x41cd87
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x41cd61
cmp byte [ecx + 0xa], 1
jne 0x41cd61
mov ecx, dword [ecx + 0x10]
mov dl, 5
jmp 0x41cd87
test dl, 1
je 0x41cd6c
xor ecx, ecx
mov dl, 5
jmp 0x41cd87
mov dl, 1
call fcn.00439510
mov ecx, eax
mov dl, 5
jmp 0x41cd87
mov ecx, dword [esp + 0x2c]
add ecx, 4
mov dword [esp + 0x2c], ecx
mov ecx, dword [ecx - 4]
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x41cd9a
mov ecx, 0x61f6c0
mov dword [esp + 0x20], ecx
jmp 0x41cdfb
cmp dl, 6
jne 0x41cdfb
mov esi, dword [esp + 0x10]
cmp dword [esi + 0x10], 0
jne 0x41cdf5
cmp dword [esi + 0xc], 0
je 0x41cdf5
cmp dword [esp + 0x24], 0
jne 0x41cdf5
test edi, edi
jns 0x41cdf5
mov dword [esi + 4], ecx
mov edx, ecx
mov ecx, dword [esi]
call fcn.0041b2a0
mov ecx, dword [esp + 0x20]
mov edx, ecx
mov dword [esi + 8], eax
lea edi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x41cdd2
sub edx, edi
mov edi, dword [esp + 0x24]
and edx, 0x7fffffff
mov dword [esi + 0x10], edx
mov edx, esi
or byte [edx + 0x15], 4
xor esi, esi
jmp 0x41c355
mov eax, ecx
mov dword [esp + 0x74], eax
test edi, edi
js 0x41ce57
cmp byte [esp + 0x1f], 0
je 0x41ce39
mov esi, ecx
test edi, edi
jle 0x41ce32
nop dword [eax]
mov al, byte [esi]
dec edi
test al, al
je 0x41ce32
inc esi
cmp al, 0xc0
jb 0x41ce2e
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x41ce2e
mov al, byte [esi + 1]
inc esi
and al, 0xc0
cmp al, 0x80
je 0x41ce24
test edi, edi
jg 0x41ce10
sub esi, ecx
jmp 0x41d049
xor esi, esi
test edi, edi
jle 0x41c34d
cmp byte [esi + ecx], 0
je 0x41c34d
inc esi
cmp esi, edi
jl 0x41ce43
jmp 0x41c34d
mov esi, ecx
lea edx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x41ce60
sub esi, edx
and esi, 0x7fffffff
jmp 0x41d049
cmp dl, 0xe
mov eax, 0x27
mov ecx, 0x22
cmove eax, ecx
cmp byte [esp + 0x17], 0
mov dword [esp + 0x50], eax
je 0x41cefb
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x41cea8
mov dl, byte [esp + 0x15]
mov dword [esp + 0x40], 0
jmp 0x41cf15
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
jne 0x41cebe
mov dl, byte [esp + 0x15]
jmp 0x41cf09
movzx edx, word [ecx + 8]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x41cedf
cmp byte [ecx + 0xa], 1
jne 0x41cedf
mov ecx, dword [ecx + 0x10]
mov dl, byte [esp + 0x15]
jmp 0x41cf09
test dl, 1
je 0x41ceec
mov dl, byte [esp + 0x15]
xor ecx, ecx
jmp 0x41cf09
mov dl, 1
call fcn.00439510
mov dl, byte [esp + 0x15]
mov ecx, eax
jmp 0x41cf09
mov ecx, dword [esp + 0x2c]
add ecx, 4
mov dword [esp + 0x2c], ecx
mov ecx, dword [ecx - 4]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
test ecx, ecx
jne 0x41cf29
cmp dl, 0xa
mov ecx, str.NULL
mov eax, str._NULL_
cmovne ecx, eax
mov dword [esp + 0x3c], ecx
mov esi, dword [esp + 0x38]
xor eax, eax
xor edi, edi
mov dword [esp + 0x18], eax
test esi, esi
je 0x41cf89
mov dh, byte [esp + 0x1f]
nop dword [eax]
mov dl, byte [edi + ecx]
test dl, dl
je 0x41cf85
inc eax
cmp dl, byte [esp + 0x50]
cmovne eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
test dh, dh
je 0x41cf7f
and dl, 0xc0
cmp dl, 0xc0
jne 0x41cf7f
mov al, byte [ecx + edi + 1]
and al, dl
cmp al, 0x80
jne 0x41cf7b
nop dword [eax + eax]
mov al, byte [ecx + edi + 2]
inc edi
and al, 0xc0
cmp al, 0x80
je 0x41cf70
mov eax, dword [esp + 0x18]
inc edi
sub esi, 1
jne 0x41cf40
mov dl, byte [esp + 0x15]
cmp dword [esp + 0x40], 0
je 0x41cf9d
mov dword [esp + 0x18], 1
cmp dl, 0xa
je 0x41cfa5
mov dword [esp + 0x18], 0
add eax, 3
add eax, edi
cmp eax, 0x46
jle 0x41cfec
cdq
push edx
push eax
call fcn.0041b100
add esp, 8
mov dword [esp + 0x74], eax
mov dword [esp + 0x20], eax
mov ecx, eax
test eax, eax
jne 0x41cff7
mov eax, dword [esp + 0x10]
mov byte [eax + 0x14], 1
mov dword [eax + 8], 0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x110]
xor ecx, esp
call fcn.005b75ab
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xd0]
mov dword [esp + 0x20], ecx
xor esi, esi
cmp dword [esp + 0x18], esi
je 0x41d00a
mov eax, dword [esp + 0x50]
mov esi, 1
mov byte [ecx], al
xor edx, edx
mov dword [esp + 0x40], edx
test edi, edi
jle 0x41d036
mov eax, dword [esp + 0x3c]
mov dl, byte [edx + eax]
mov byte [esi + ecx], dl
inc esi
cmp dl, byte [esp + 0x50]
jne 0x41d029
mov byte [esi + ecx], dl
inc esi
mov edx, dword [esp + 0x40]
inc edx
mov dword [esp + 0x40], edx
cmp edx, edi
jl 0x41d018
cmp dword [esp + 0x18], 0
je 0x41d045
mov eax, dword [esp + 0x50]
mov byte [esi + ecx], al
inc esi
mov byte [esi + ecx], 0
cmp byte [esp + 0x1f], 0
je 0x41c34d
mov edi, dword [esp + 0x24]
test edi, edi
jle 0x41c351
lea edx, [esi - 1]
test edx, edx
js 0x41c351
nop dword [eax + eax]
lea eax, [edx + ecx]
mov al, byte [eax]
lea ecx, [edi + 1]
and al, 0xc0
cmp al, 0x80
cmovne ecx, edi
sub edx, 1
mov edi, ecx
mov ecx, dword [esp + 0x20]
jns 0x41d070
jmp 0x41c351
mov edx, dword [esp + 0x10]
test byte [edx + 0x15], 1
je case.default.0x41bf92
mov ecx, dword [esp + 0x2c]
add ecx, 4
mov dword [esp + 0x2c], ecx
mov eax, dword [ecx - 4]
test eax, eax
je 0x41d0c9
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x41d0c9
mov edx, dword [eax]
push ecx
mov ecx, dword [esp + 0x14]
call fcn.0041d4a0
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x20]
xor edi, edi
xor esi, esi
jmp 0x41c355
mov esi, dword [esp + 0x10]
test byte [esi + 0x15], 1
je case.default.0x41bf92
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
lea eax, [ecx + 8]
mov dword [esp + 0x58], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x60], edx
lea edi, [eax + eax*4]
add edi, edi
mov edx, dword [edx + edi*8 + 0xc]
test edx, edx
je 0x41d139
mov ecx, esi
call fcn.0041d4f0
mov eax, dword [esi + 0x10]
lea edx, [eax + 1]
cmp edx, dword [esi + 8]
jb 0x41d12a
push 1
mov edx, 0x61f6d4
mov ecx, esi
call fcn.0041d460
add esp, 4
jmp 0x41d139
mov ecx, dword [esi + 4]
mov dword [esi + 0x10], edx
mov al, byte [0x61f6d4]
mov byte [ecx + edx - 1], al
mov edx, dword [esp + 0x60]
mov ecx, esi
mov edx, dword [edx + edi*8 + 0x10]
call fcn.0041d4f0
mov ecx, dword [esp + 0x58]
xor edi, edi
mov dword [esp + 0x2c], ecx
xor esi, esi
mov ecx, dword [esp + 0x20]
jmp 0x41c351
mov edx, dword [esp + 0x10]
jmp 0x41c359
test esi, esi
je 0x41d187
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x20]
sub eax, esi
push esi
push ecx
add eax, edi
mov dword [edx + 0x10], edi
push eax
call fcn.005b96a0
add esp, 0xc
mov edx, dword [esp + 0x10]
cmp byte [esp + 0xf], 0
je 0x41d210
mov esi, dword [edx + 0x10]
xor ecx, ecx
mov edi, dword [esp + 0x24]
mov eax, edi
cdq
add esi, eax
adc ecx, edx
mov edx, dword [esp + 0x10]
js 0x41d1c4
jg 0x41d1af
cmp esi, dword [edx + 8]
jb 0x41d1c4
mov ecx, dword [esp + 0x10]
mov edx, edi
call fcn.0041d350
mov edx, dword [esp + 0x10]
mov edi, eax
test edi, edi
jle 0x41d210
mov ecx, dword [edx + 0x10]
dec edi
mov eax, dword [edx + 4]
mov byte [ecx + eax], 0x20
inc dword [edx + 0x10]
test edi, edi
jg 0x41d1c4
jmp 0x41d210
mov edi, dword [edx + 0x10]
add edi, esi
cmp edi, dword [edx + 8]
jb 0x41d1f3
mov edx, ecx
mov ecx, dword [esp + 0x10]
push esi
call fcn.0041d460
add esp, 4
jmp 0x41d20c
test esi, esi
je 0x41d210
mov eax, dword [edx + 4]
push esi
sub eax, esi
mov dword [edx + 0x10], edi
push ecx
add eax, edi
push eax
call fcn.005b96a0
add esp, 0xc
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x74]
test edi, edi
je 0x41d263
mov ecx, dword [edx]
test ecx, ecx
je 0x41d250
cmp dword [ecx + 0x1d8], 0
je 0x41d230
mov edx, edi
call fcn.0041b360
jmp 0x41d259
cmp edi, dword [ecx + 0x128]
jb 0x41d250
cmp edi, dword [ecx + 0x12c]
jae 0x41d250
mov eax, dword [ecx + 0x124]
mov dword [edi], eax
mov dword [ecx + 0x124], edi
jmp 0x41d25d
push edi
call fcn.0041b2f0
add esp, 4
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x74], eax
mov esi, dword [esp + 0x4c]
inc esi
movsx eax, byte [esi]
test eax, eax
je case.default.0x41bf92
mov edi, dword [esp + 0x2c]
jmp 0x41bc47
mov esi, dword [edx + 0x10]
inc esi
cmp esi, dword [edx + 8]
jb 0x41d2a9
mov ecx, dword [esp + 0x10]
mov edx, 0x61f6b8
push 1
call fcn.0041d460
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x110]
xor ecx, esp
call fcn.005b75ab
mov esp, ebp
pop ebp
ret
mov ecx, dword [edx + 4]
mov dword [edx + 0x10], esi
mov al, byte [0x61f6b8]
mov byte [ecx + esi - 1], al
mov ecx, dword [esp + 0x11c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005b75ab
mov esp, ebp
pop ebp
ret