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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xe0
mov esi, esp
mov dword [esi + 0xc8], ebp
mov dword [esi + 0xcc], esp
mov dword [esi + 0xd8], 0xffffffff
mov dword [esi + 0xd4], 0x4042b0
mov edi, dword [ebp + 0xc]
lea eax, [esi + 0xd0]
movaps xmm0, xmmword [0x42d1e0]
lea ebx, [esi + 0x78]
mov ecx, dword fs:[0]
mov dword [esi + 0xd0], ecx
mov dword fs:[0], eax
lea ecx, [esi + 0x20]
movups xmmword [esi + 0x78], xmm0
mov eax, dword [edi]
push ebx
push eax
push ecx
call fcn.0040c0e0
add esp, 0xc
xor ecx, ecx
cmp dword [esi + 0x20], 0
jne 0x403176
mov ecx, dword [esi + 0x2c]
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0x28]
je 0x40318b
mov ecx, dword [esi + 0x24]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x4040e2
mov eax, dword [ebp + 0x14]
mov dword [esi + 0xac], edx
mov dword [esi + 0xb0], ecx
mov dword [esi + 0x4c], eax
nop dword [eax]
push edi
push ebx
call fcn.00405960
add esp, 8
cmp dword [esi + 0x78], 0
jne 0x40408c
mov edx, dword [esi + 0x90]
movsd xmm0, qword [esi + 0x80]
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x8c]
movsd xmm1, qword [esi + 0x98]
test edx, edx
movsd qword [esi + 0xc0], xmm0
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], eax
movsd qword [esi + 0x68], xmm1
je 0x4031a0
or eax, ecx
je 0x4031a0
mov dword [esi + 0xd8], 1
push 1
mov dword [esi], edx
push edx
call fcn.00408130
add esp, 8
test al, al
je 0x40325d
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x64]
sub eax, dword [esi + 0x68]
sbb ecx, dword [esi + 0x6c]
push dword [ebp + 0x20]
push ecx
push eax
push dword [esi + 0x4c]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
lea eax, [esi + 0x20]
push eax
call fcn.00403100
add esp, 0x1c
movzx ebx, byte [esi + 0x20]
cmp bl, 4
jne 0x404116
push 4
push 0x42d564
call fcn.00408100
add esp, 8
xor ecx, ecx
cmp dword [esi], eax
sete cl
add dword [esi + 0x4c], ecx
jmp 0x403850
mov eax, dword [0x436008]
mov edi, dword [ebp + 0xc]
mov eax, dword [eax]
cmp eax, 3
jbe 0x40331f
push dword [esi]
lea eax, [esi + 0xb4]
push eax
call fcn.00408180
add esp, 8
lea eax, [esi + 0xb4]
mov dword [esi + 8], 0x42d44c
mov dword [esi + 0xc], 4
mov dword [esi + 0x18], 0
mov dword [esi + 0xd8], 2
mov dword [esi + 0x20], eax
lea eax, [esi + 0xc0]
mov dword [esi + 0x24], 0x401100
mov dword [esi + 0x28], eax
lea eax, [esi + 0x60]
mov dword [esi + 0x2c], fcn.0042a580
mov dword [esi + 0x30], eax
lea eax, [esi + 0x68]
mov dword [esi + 0x34], fcn.0042a580
mov dword [esi + 0x38], eax
lea eax, [esi + 0x20]
mov dword [esi + 0x3c], 0x42a440
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 4
sub esp, 4
push 0
push 0x30
push 0x42d494
push 4
lea eax, [esi + 8]
push eax
call fcn.004081e0
add esp, 0x18
mov eax, dword [esi + 0xb8]
mov edi, dword [ebp + 0xc]
test eax, eax
je 0x40331f
push 1
push eax
push dword [esi + 0xb4]
call fcn.004080a0
add esp, 0xc
movaps xmm0, xmmword [0x42d1e0]
mov eax, dword [edi]
lea ecx, [esi + 0x20]
mov dword [esi + 0xd8], 1
movups xmmword [esi + 0x20], xmm0
push ecx
push eax
lea eax, [esi + 8]
push eax
call fcn.0040c0e0
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x404075
mov eax, dword [esi + 0x10]
mov dword [esi + 0xa8], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0xa4], eax
push 4
push str.mvhdtkhdmdhdelststtsstszstssstcoco64sdtpstsccalled__Option::unwrap____on_a__None__valueD:_amp4_mergemp4_merge_srcdesc_reader.rs
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x4033a0
push 4
push 0x42d4b0
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x4033a0
push 4
push 0x42d4b4
call fcn.00408100
add esp, 8
cmp dword [esi], eax
jne 0x4036ef
mov eax, dword [ebp + 0xc]
mov byte [esi + 8], 0
mov eax, dword [eax]
push 1
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404054
movzx eax, byte [esi + 8]
mov byte [esi + 0xa], 0
mov word [esi + 8], 0
mov byte [esi + 4], al
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push 3
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
push 4
push str.mvhdtkhdmdhdelststtsstszstssstcoco64sdtpstsccalled__Option::unwrap____on_a__None__valueD:_amp4_mergemp4_merge_srcdesc_reader.rs
call fcn.00408100
add esp, 8
cmp dword [esi], eax
mov edx, dword [ebp + 0x10]
jne 0x4034ea
cmp byte [esi + 4], 1
jne 0x403485
mov eax, dword [ebp + 0xc]
movaps xmm0, xmmword [0x42d3e0]
lea ecx, [esi + 0x20]
mov eax, dword [eax]
movups xmmword [esi + 0x20], xmm0
push ecx
push eax
lea eax, [esi + 8]
push eax
call fcn.0040c0e0
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x404075
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov eax, dword [eax]
push 8
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp eax, 4
jne 0x4040f7
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
bswap ecx
jmp 0x4034e0
mov eax, dword [ebp + 0xc]
movaps xmm0, xmmword [0x42d3d0]
lea ecx, [esi + 0x20]
mov eax, dword [eax]
movups xmmword [esi + 0x20], xmm0
push ecx
push eax
lea eax, [esi + 8]
push eax
call fcn.0040c0e0
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x404075
mov eax, dword [ebp + 0xc]
mov dword [esi + 8], 0
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov eax, dword [esi + 8]
xor ecx, ecx
bswap eax
mov edx, dword [ebp + 0x10]
add dword [edx], eax
adc dword [edx + 4], ecx
mov eax, dword [esi + 0x4c]
cmp eax, dword [edx + 0x2c]
jae 0x4036ef
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x24]
test eax, eax
mov dword [esi + 0x48], eax
je 0x4036ef
push 4
push 0x42d4b0
call fcn.00408100
add esp, 8
mov ecx, dword [esi + 0x4c]
shl ecx, 7
cmp dword [esi], eax
mov dword [esi + 0x50], ecx
jne 0x4035ff
cmp byte [esi + 4], 1
jne 0x403595
mov eax, dword [ebp + 0xc]
movaps xmm0, xmmword [0x42d400]
lea ecx, [esi + 0x20]
mov eax, dword [eax]
movups xmmword [esi + 0x20], xmm0
push ecx
push eax
lea eax, [esi + 8]
push eax
call fcn.0040c0e0
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x404075
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov eax, dword [eax]
push 8
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp eax, 4
jne 0x4040f7
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
bswap ecx
jmp 0x4035f0
mov eax, dword [ebp + 0xc]
movaps xmm0, xmmword [0x42d3f0]
lea ecx, [esi + 0x20]
mov eax, dword [eax]
movups xmmword [esi + 0x20], xmm0
push ecx
push eax
lea eax, [esi + 8]
push eax
call fcn.0040c0e0
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x404075
mov eax, dword [ebp + 0xc]
mov dword [esi + 8], 0
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov eax, dword [esi + 8]
xor ecx, ecx
bswap eax
mov edx, dword [esi + 0x48]
mov edi, dword [esi + 0x50]
add edx, edi
add dword [edx], eax
adc dword [edx + 4], ecx
push 4
push 0x42d4b4
call fcn.00408100
add esp, 8
cmp dword [esi], eax
jne 0x4036ef
cmp byte [esi + 4], 1
jne 0x403684
mov eax, dword [ebp + 0xc]
movaps xmm0, xmmword [0x42d3e0]
lea ecx, [esi + 0x20]
mov eax, dword [eax]
movups xmmword [esi + 0x20], xmm0
push ecx
push eax
lea eax, [esi + 8]
push eax
call fcn.0040c0e0
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x404075
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov eax, dword [eax]
push 8
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp eax, 4
jne 0x4040f7
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
bswap ecx
jmp 0x4036df
mov eax, dword [ebp + 0xc]
movaps xmm0, xmmword [0x42d3d0]
lea ecx, [esi + 0x20]
mov eax, dword [eax]
movups xmmword [esi + 0x20], xmm0
push ecx
push eax
lea eax, [esi + 8]
push eax
call fcn.0040c0e0
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x404075
mov eax, dword [ebp + 0xc]
mov dword [esi + 8], 0
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov eax, dword [esi + 8]
xor ecx, ecx
bswap eax
mov edx, dword [esi + 0x48]
mov edi, dword [esi + 0x50]
add dword [edx + edi + 0x10], eax
adc dword [edx + edi + 0x14], ecx
push 4
push 0x42d4b8
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x40378b
push 4
push 0x42d4bc
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x40378b
push 4
push 0x42d4c0
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x40378b
push 4
push 0x42d4c4
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x40378b
push 4
push 0x42d4c8
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x40378b
push 4
push 0x42d4cc
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x40378b
push 4
push 0x42d4d0
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x40378b
push 4
push 0x42d4d4
call fcn.00408100
add esp, 8
cmp dword [esi], eax
jne 0x4037cc
mov eax, dword [esi + 0x4c]
mov ecx, dword [ebp + 0x10]
cmp eax, dword [ecx + 0x2c]
jae 0x404185
mov eax, dword [ecx + 0x24]
test eax, eax
mov dword [esi + 0x40], eax
je 0x404185
mov eax, dword [esi + 0x4c]
shl eax, 7
cmp dword [ebp + 0x20], 0
mov dword [esi + 0x44], eax
je 0x403904
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
cmp byte [eax + ecx + 0x78], 0
je 0x403904
push 4
push 0x42d550
call fcn.00408100
add esp, 8
cmp dword [esi], eax
mov edx, dword [ebp + 0xc]
jne 0x403807
mov eax, dword [esi + 0x4c]
mov ecx, dword [ebp + 0x10]
cmp eax, dword [ecx + 0x2c]
jae 0x40419b
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x40419b
mov ecx, dword [esi + 0x4c]
shl ecx, 7
mov byte [eax + ecx + 0x78], 1
mov ecx, dword [esi + 0xa8]
mov edi, dword [esi + 0xa4]
mov eax, dword [edx]
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0
add ecx, dword [esi + 0x60]
adc edi, dword [esi + 0x64]
sub ecx, dword [esi + 0x68]
sbb edi, dword [esi + 0x6c]
mov dword [esi + 0x28], ecx
lea ecx, [esi + 0x20]
mov dword [esi + 0x2c], edi
push ecx
push eax
lea eax, [esi + 8]
push eax
call fcn.0040c0e0
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x404075
mov eax, dword [ebp + 0xc]
movaps xmm0, xmmword [0x42d1e0]
lea ecx, [esi + 0x20]
mov eax, dword [eax]
movups xmmword [esi + 0x20], xmm0
push ecx
push eax
lea eax, [esi + 8]
push eax
call fcn.0040c0e0
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x404075
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
sub eax, dword [esi + 0xac]
sbb ecx, dword [esi + 0xb0]
cmp eax, dword [ebp + 0x18]
sbb ecx, dword [ebp + 0x1c]
jae 0x404086
cmp dword [esi + 0x78], 0
je 0x4038ef
cmp byte [esi + 0x7c], 3
jne 0x4038ef
mov eax, dword [esi + 0x80]
mov ecx, dword [eax]
mov dword [esi], eax
mov eax, dword [eax + 4]
mov dword [esi + 0xd8], 3
mov dword [esi + 0x48], ecx
push ecx
mov dword [esi + 4], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 4]
test eax, eax
je 0x4038e1
push dword [ecx + 8]
push eax
push dword [esi + 0x48]
call fcn.004080a0
add esp, 0xc
push 4
push 0xc
push dword [esi]
call fcn.004080a0
add esp, 0xc
mov edi, dword [ebp + 0xc]
mov dword [esi + 0xd8], 0xffffffff
lea ebx, [esi + 0x78]
jmp 0x4031a0
mov eax, dword [ebp + 0xc]
mov byte [esi + 8], 0
mov eax, dword [eax]
push 1
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404054
movzx eax, byte [esi + 8]
mov byte [esi + 0xa], 0
mov word [esi + 8], 0
mov byte [esi + 4], al
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push 3
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
push 4
push 0x42d4b8
call fcn.00408100
add esp, 8
cmp dword [esi], eax
jne 0x403a21
mov eax, dword [ebp + 0xc]
movaps xmm0, xmmword [0x42d410]
lea ecx, [esi + 0x20]
mov eax, dword [eax]
movups xmmword [esi + 0x20], xmm0
push ecx
push eax
lea eax, [esi + 8]
push eax
call fcn.0040c0e0
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x404075
mov eax, dword [ebp + 0xc]
cmp byte [esi + 4], 1
mov eax, dword [eax]
jne 0x4039e6
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
push 8
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp eax, 4
jne 0x4040f7
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
bswap ecx
jmp 0x403a11
mov dword [esi + 8], 0
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov eax, dword [esi + 8]
xor ecx, ecx
bswap eax
mov edx, dword [esi + 0x40]
mov edi, dword [esi + 0x44]
add dword [edx + edi + 8], eax
adc dword [edx + edi + 0xc], ecx
push 4
push 0x42d4c0
call fcn.00408100
add esp, 8
cmp dword [esi], eax
jne 0x403ac8
mov eax, dword [ebp + 0xc]
mov dword [esi + 8], 0
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
bswap eax
mov dword [ecx + edx + 0x70], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 8], 0
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 8]
lea eax, [eax + ecx + 0x70]
bswap edx
cmp dword [eax], 0
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x50], edx
je 0x403fbb
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x50]
add dword [eax + ecx + 0x74], edx
push 4
push 0x42d4d0
call fcn.00408100
add esp, 8
cmp dword [esi], eax
mov ecx, dword [ebp + 0xc]
jne 0x403b84
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x64]
sub eax, dword [esi + 0x68]
sbb edx, dword [esi + 0x6c]
add eax, 0xfffffffc
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x40]
adc edx, 0xffffffff
xor edi, edi
xor ebx, ebx
mov dword [esi + 0x5c], edx
mov edx, dword [esi + 0x44]
lea edx, [eax + edx + 0x50]
mov dword [esi + 0x50], edx
jmp 0x403b21
mov ecx, dword [edx]
mov edi, dword [esi + 4]
mov byte [ecx + eax], bl
inc dword [edx + 8]
mov ecx, dword [ebp + 0xc]
mov ebx, dword [esi + 0x48]
cmp edi, dword [esi + 0x54]
mov eax, ebx
sbb eax, dword [esi + 0x5c]
jae 0x403b84
mov eax, dword [ecx]
add edi, 1
mov byte [esi + 8], 0
adc ebx, 0
mov dword [esi + 4], edi
mov dword [esi + 0x48], ebx
push 1
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404054
mov edx, dword [esi + 0x50]
movzx ebx, byte [esi + 8]
mov eax, dword [edx + 8]
cmp eax, dword [edx + 4]
jne 0x403b10
mov byte [esi + 0x58], bl
push eax
push edx
call fcn.00402cf0
add esp, 8
mov edx, dword [esi + 0x50]
movzx ebx, byte [esi + 0x58]
mov eax, dword [edx + 8]
jmp 0x403b10
push 4
push 0x42d4c4
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x403be7
push 4
push 0x42d4c8
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x403be7
push 4
push 0x42d4cc
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x403be7
push 4
push 0x42d4bc
call fcn.00408100
add esp, 8
cmp dword [esi], eax
je 0x403be7
push 4
push 0x42d4d4
call fcn.00408100
add esp, 8
cmp dword [esi], eax
jne 0x4037cc
mov eax, dword [ebp + 0xc]
mov dword [esi + 8], 0
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 0x20]
test ecx, ecx
je 0x4041b1
mov eax, dword [edx + 0x18]
test eax, eax
je 0x4041b1
mov edi, dword [edx + 8]
lea ecx, [ecx + ecx*2]
mov edx, dword [edx + 0xc]
sub edi, dword [eax + ecx*8 - 0x10]
sbb edx, dword [eax + ecx*8 - 0xc]
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov dword [esi + 0x5c], edi
lea edi, [eax + ecx + 0x38]
mov dword [esi + 0x58], edx
lea edx, [eax + ecx + 0x44]
mov dword [esi + 0x50], edi
lea edi, [eax + ecx + 0x20]
lea eax, [eax + ecx + 0x5c]
xor ecx, ecx
mov dword [esi + 4], edx
mov dword [esi + 0x74], edi
mov edi, dword [esi + 8]
mov dword [esi + 0x70], eax
bswap edi
mov dword [esi + 0x54], edi
jmp 0x403c9f
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x70]
mov ebx, dword [esi + 0xa0]
mov eax, dword [edx + 0x20]
mov ecx, dword [ecx]
mov edi, dword [esi + 0x40]
lea eax, [eax + eax*2]
bswap ebx
mov dword [ecx + eax*4], edi
mov edi, dword [esi + 0x44]
bswap edi
mov dword [ecx + eax*4 + 4], edi
mov dword [ecx + eax*4 + 8], ebx
inc dword [edx + 0x20]
mov ecx, dword [esi + 0x48]
cmp ecx, dword [esi + 0x54]
jae 0x4037cc
mov dword [esi + 0x48], ecx
push 4
push 0x42d4c4
call fcn.00408100
add esp, 8
cmp dword [esi], eax
jne 0x403d1a
mov eax, dword [ebp + 0xc]
mov dword [esi + 8], 0
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov edx, dword [esi + 4]
mov edi, dword [esi + 8]
mov eax, dword [edx + 8]
bswap edi
add edi, dword [edx + 0x24]
cmp eax, dword [edx + 4]
jne 0x403d12
mov dword [esi + 0x40], edi
push eax
push edx
call fcn.00402ef0
add esp, 8
mov edx, dword [esi + 4]
mov edi, dword [esi + 0x40]
mov eax, dword [edx + 8]
mov ecx, dword [edx]
mov dword [ecx + eax*4], edi
inc dword [edx + 8]
push 4
push 0x42d4c8
call fcn.00408100
add esp, 8
cmp dword [esi], eax
jne 0x403d9f
mov eax, dword [ebp + 0xc]
mov dword [esi + 8], 0
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov edi, dword [esi + 8]
mov edx, dword [esi + 4]
mov ebx, dword [esi + 0x58]
mov ecx, dword [esi + 0x50]
bswap edi
mov eax, dword [edx - 4]
add edi, dword [esi + 0x5c]
adc ebx, 0
cmp eax, dword [ecx + 4]
jne 0x403d93
mov dword [esi + 0x44], ebx
mov dword [esi + 0x40], edi
push eax
push ecx
call fcn.00402fa0
add esp, 8
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x50]
mov edi, dword [esi + 0x40]
mov ebx, dword [esi + 0x44]
mov eax, dword [edx - 4]
mov ecx, dword [ecx]
mov dword [ecx + eax*8 + 4], ebx
mov dword [ecx + eax*8], edi
inc dword [edx - 4]
push 4
push 0x42d4cc
call fcn.00408100
add esp, 8
cmp dword [esi], eax
jne 0x403e2e
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov eax, dword [eax]
push 8
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp eax, 4
jne 0x4040f7
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 4]
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 0x50]
bswap edi
mov eax, dword [edx - 4]
bswap ebx
add edi, dword [esi + 0x5c]
adc ebx, dword [esi + 0x58]
cmp eax, dword [ecx + 4]
jne 0x403e22
mov dword [esi + 0x44], ebx
mov dword [esi + 0x40], edi
push eax
push ecx
call fcn.00402fa0
add esp, 8
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x50]
mov edi, dword [esi + 0x40]
mov ebx, dword [esi + 0x44]
mov eax, dword [edx - 4]
mov ecx, dword [ecx]
mov dword [ecx + eax*8 + 4], ebx
mov dword [ecx + eax*8], edi
inc dword [edx - 4]
push 4
push 0x42d4bc
call fcn.00408100
add esp, 8
cmp dword [esi], eax
jne 0x403ede
mov eax, dword [ebp + 0xc]
mov dword [esi + 8], 0
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov eax, dword [esi + 8]
mov dword [esi + 8], 0
mov dword [esi + 0x40], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x74]
mov ebx, dword [esi + 8]
mov eax, dword [edx - 0x1c]
cmp eax, dword [ecx + 4]
jne 0x403ecb
mov dword [esi + 0x44], ebx
push eax
push ecx
call fcn.00403050
add esp, 8
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x74]
mov ebx, dword [esi + 0x44]
mov eax, dword [edx - 0x1c]
mov edi, dword [esi + 0x40]
mov ecx, dword [ecx]
bswap ebx
bswap edi
mov dword [ecx + eax*8], edi
mov dword [ecx + eax*8 + 4], ebx
inc dword [edx - 0x1c]
push 4
push 0x42d4d4
call fcn.00408100
add esp, 8
mov ecx, dword [esi + 0x48]
inc ecx
cmp dword [esi], eax
jne 0x403c9f
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x48], ecx
mov dword [esi + 8], 0
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
bswap ecx
add ecx, dword [eax + 0x28]
mov eax, dword [ebp + 0xc]
mov dword [esi + 8], 0
mov eax, dword [eax]
mov dword [esi + 0x40], ecx
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov eax, dword [esi + 8]
mov dword [esi + 8], 0
mov dword [esi + 0x44], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x70]
mov ebx, dword [esi + 8]
mov eax, dword [edx + 0x20]
cmp eax, dword [ecx + 4]
jne 0x403c7f
mov dword [esi + 0xa0], ebx
push eax
push ecx
call fcn.00402c40
add esp, 8
jmp 0x403c70
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
lea edx, [ecx + edx + 0x2c]
xor ecx, ecx
mov dword [esi + 0x48], edx
jmp 0x403fe6
mov edx, dword [esi + 0x48]
mov edi, dword [esi + 0x54]
mov eax, dword [edx + 8]
mov ecx, dword [edx]
bswap edi
mov dword [ecx + eax*4], edi
mov ecx, dword [esi + 4]
inc dword [edx + 8]
mov eax, dword [ebp + 0xc]
inc ecx
cmp ecx, dword [esi + 0x50]
jae 0x403abb
mov eax, dword [eax]
mov dword [esi + 4], ecx
mov dword [esi + 8], 0
push 4
lea ecx, [esi + 8]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405c90
add esp, 0x10
movzx eax, byte [esi + 0x20]
cmp al, 4
jne 0x404033
mov edx, dword [esi + 0x48]
mov edi, dword [esi + 8]
mov eax, dword [edx + 8]
cmp eax, dword [edx + 4]
jne 0x403fd5
mov dword [esi + 0x54], edi
push eax
push edx
call fcn.00402ef0
add esp, 8
jmp 0x403fcc
movzx ecx, byte [esi + 0x23]
mov edx, dword [ebp + 8]
movzx ebx, word [esi + 0x21]
mov edi, dword [esi + 0x24]
mov byte [edx + 3], cl
mov word [edx + 1], bx
mov byte [edx], al
mov dword [edx + 4], edi
mov eax, edx
jmp 0x404127
movzx ecx, byte [esi + 0x21]
movzx edx, word [esi + 0x26]
mov edi, dword [ebp + 8]
mov ebx, dword [esi + 0x22]
mov word [edi + 6], dx
mov dword [edi + 2], ebx
mov byte [edi], al
mov byte [edi + 1], cl
mov eax, edi
jmp 0x404127
movsd xmm0, qword [esi + 0xc]
mov eax, dword [ebp + 8]
movsd qword [eax], xmm0
jmp 0x404127
cmp dword [esi + 0x78], 0
je 0x4040dc
cmp byte [esi + 0x7c], 3
jne 0x4040dc
mov eax, dword [esi + 0x80]
mov ecx, dword [eax]
mov dword [esi], eax
mov eax, dword [eax + 4]
mov dword [esi + 0xd8], 0
mov dword [esi + 4], ecx
push ecx
mov dword [esi + 0x4c], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 0x4c]
mov eax, dword [ecx + 4]
test eax, eax
je 0x4040ce
push dword [ecx + 8]
push eax
push dword [esi + 4]
call fcn.004080a0
add esp, 0xc
push 4
push 0xc
push dword [esi]
call fcn.004080a0
add esp, 0xc
mov eax, dword [ebp + 8]
mov byte [eax], 4
mov ecx, dword [esi + 0xd0]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movzx ecx, byte [esi + 0x23]
movzx edx, word [esi + 0x21]
shl edx, 8
shl ecx, 0x18
or ecx, edx
mov edx, dword [esi + 0x24]
or ecx, eax
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x404127
mov ecx, dword [esi + 0x21]
mov edx, dword [esi + 0x24]
mov eax, dword [ebp + 8]
mov dword [eax + 4], edx
mov dword [eax + 1], ecx
mov byte [eax], bl
cmp dword [esi + 0x78], 0
je 0x4040e2
cmp byte [esi + 0x7c], 3
jne 0x4040e2
mov eax, dword [esi + 0x80]
mov ecx, dword [eax]
mov dword [esi], eax
mov eax, dword [eax + 4]
mov dword [esi + 0xd8], 4
mov dword [esi + 4], ecx
push ecx
mov dword [esi + 0x4c], eax
call dword [eax]
add esp, 4
mov ecx, dword [esi + 0x4c]
mov eax, dword [ecx + 4]
test eax, eax
je 0x40416f
push dword [ecx + 8]
push eax
push dword [esi + 4]
call fcn.004080a0
add esp, 0xc
push 4
push 0xc
push dword [esi]
call fcn.004080a0
add esp, 0xc
mov eax, dword [ebp + 8]
jmp 0x4040e2
push 0x42d530
push 0x2b
push 0x42d4d8
call fcn.0042c800
add esp, 0xc
jmp 0x4041c5
push 0x42d554
push 0x2b
push 0x42d4d8
call fcn.0042c800
add esp, 0xc
jmp 0x4041c5
push 0x42d540
push 0x2b
push 0x42d4d8
call fcn.0042c800
add esp, 0xc
ud2