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

Disassembly:
mov ecx, dword [0x64f96c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x20]
cmp eax, dword [ecx + 8]
jbe 0x4df410
sub esp, 0xa0
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
mov ecx, dword [esp + 0xa8]
mov dword [esp + 4], ecx
call sym.archive_zip._Writer_.prepare
mov eax, dword [esp + 8]
test eax, eax
jne 0x4df392
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], edx
call sym.archive_zip.detectUTF8
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
movzx ebx, byte [esp + 8]
mov byte [esp + 0x21], bl
movzx ebp, byte [esp + 9]
xchg ebp, eax
mov byte [esp + 0x22], al
xchg ebp, eax
mov dword [esp], ecx
mov dword [esp + 4], edx
call sym.archive_zip.detectUTF8
mov eax, dword [esp + 0xa8]
movzx ecx, byte [eax + 0x10]
test cl, cl
je 0x4deb68
movzx ecx, word [eax + 0x16]
and ecx, 0xfffff7ff
mov word [eax + 0x16], cx
jmp 0x4deb9a
movzx ecx, byte [esp + 0x22]
test cl, cl
jne 0x4deb7a
movzx ecx, byte [esp + 9]
test cl, cl
je 0x4deb9a
movzx ecx, byte [esp + 0x21]
test cl, cl
je 0x4deb9a
movzx ecx, byte [esp + 8]
test cl, cl
je 0x4deb9a
movzx ecx, word [eax + 0x16]
or ecx, 0x800
mov word [eax + 0x16], cx
movzx ecx, word [eax + 0x12]
and ecx, 0xffffff00
or ecx, 0x14
mov word [eax + 0x12], cx
mov word [eax + 0x14], 0x14
lea esi, [eax + 0x1c]
mov dword [esp + 0x9c], esi
lea edi, [esp + 0x50]
call fcn.0046d6fe
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
test ecx, 0x80000000
je 0x4debf8
mov ebx, edx
shl edx, 1
shl ecx, 1
mov ebp, ebx
shr ebx, 0x1f
or ecx, ebx
mov ebx, ecx
shl ecx, 1
shr ebx, 0x1f
shr edx, 0x1f
or edx, ecx
add edx, 0xd7b17f80
adc ebx, 0xd
jmp 0x4dec04
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
mov ebp, edx
mov edx, ecx
test edx, edx
sete cl
test ebx, ebx
sete dl
and edx, ecx
test dl, dl
je 0x4dec20
test ebp, 0x3fffffff
je 0x4dee85
lea edi, [esp + 0x7c]
mov esi, dword [esp + 0x9c]
call fcn.0046d6fe
lea edi, [esp]
lea esi, [esp + 0x7c]
call fcn.0046d6fe
call sym.archive_zip.timeToMsDosTime
movzx eax, word [esp + 0x14]
movzx ecx, word [esp + 0x16]
mov edx, dword [esp + 0xa8]
mov word [edx + 0x32], ax
mov word [edx + 0x30], cx
mov dword [esp + 0x23], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
lea edi, [esp + 0x3c]
mov esi, dword [esp + 0x9c]
call fcn.0046d6fe
mov eax, dword [esp + 0x40]
nop
test eax, 0x80000000
je 0x4decac
mov ebx, dword [esp + 0x3c]
mov ebp, ebx
shl ebx, 1
shl eax, 1
shr ebp, 0x1f
or eax, ebp
shl eax, 1
shr ebx, 0x1f
or ebx, eax
add ebx, 0xd7b17f80
jmp 0x4decb0
mov ebx, dword [esp + 0x44]
lea ebp, [esp + 0x23]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], 9
mov dword [esp + 0x78], 9
mov esi, dword [esp + 0x70]
nop
mov word [esi], 0x5455
mov ecx, dword [esp + 0x74]
add ebx, 0x886e0900
cmp ecx, 2
jb 0x4df405
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x78]
add ecx, 0xfffffffe
mov dword [esp + 0x74], ecx
add edi, 0xfffffffe
mov dword [esp + 0x78], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea eax, [esi + edi]
mov dword [esp + 0x70], eax
nop
nop
cmp ecx, 1
jbe 0x4df3fb
mov word [esi + edi], 5
mov ecx, dword [esp + 0x74]
cmp ecx, 2
jb 0x4df3f1
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x78]
lea eax, [ecx - 2]
mov dword [esp + 0x74], eax
add edi, 0xfffffffe
mov dword [esp + 0x78], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
lea ecx, [esi + edi]
mov dword [esp + 0x70], ecx
nop
test eax, eax
jbe 0x4df3e8
mov byte [esi + edi], 1
mov esi, dword [esp + 0x74]
cmp esi, 1
jb 0x4df3dc
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x78]
lea ecx, [esi - 1]
mov dword [esp + 0x74], ecx
lea esi, [eax - 1]
mov dword [esp + 0x78], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
lea eax, [esi + edi]
mov dword [esp + 0x70], eax
nop
nop
cmp ecx, 3
jbe 0x4df3d2
mov dword [edi + esi], ebx
mov ecx, dword [esp + 0x74]
cmp ecx, 4
jb 0x4df3c8
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x78]
add ebx, 0xfffffffc
add ecx, 0xfffffffc
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
add eax, ebx
mov dword [esp + 0x70], eax
mov eax, dword [edx + 0x58]
mov ecx, dword [edx + 0x54]
lea ebx, [ecx + 9]
mov esi, dword [edx + 0x50]
cmp eax, ebx
jae 0x4dee21
mov dword [esp + 0x34], ecx
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 9
lea eax, [0x51f6c0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
lea ebp, [esp + 0x23]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x98], esi
add ecx, esi
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], 9
call sym.runtime.memmove
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xa8]
mov dword [ecx + 0x54], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x58], eax
mov eax, dword [0x64faa8]
test eax, eax
jne 0x4dee6e
mov eax, dword [esp + 0x98]
jmp 0x4dee82
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0x98]
mov dword [edi], eax
mov edx, dword [ecx + 0x50]
mov dword [edi + 4], edx
mov dword [ecx + 0x50], eax
lea eax, [0x534380]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [0x64faa8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x4deeaa
mov edx, dword [esp + 0xa8]
jmp 0x4deeb8
call sym.runtime.gcWriteBarrier1
mov edx, dword [esp + 0xa8]
mov dword [edi], edx
mov dword [esp + 0x68], ecx
mov dword [ecx], edx
mov ebx, dword [esp + 0xa4]
mov ebp, dword [ebx]
mov esi, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
mov dword [ecx + 4], esi
mov dword [ecx + 8], ebp
mov ebp, dword [edx + 4]
test ebp, ebp
jle 0x4def1e
lea eax, [ebp - 1]
cmp ebp, eax
jb 0x4df3c1
mov eax, dword [edx]
lea eax, [ebp + eax - 1]
mov dword [esp], eax
lea eax, [0x53be23]
mov dword [esp + 4], eax
mov dword [esp + 8], 1
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
jmp 0x4def20
xor eax, eax
test al, al
je 0x4def72
mov word [edx + 0x18], 0
movzx eax, word [edx + 0x16]
and eax, 0xfffffff7
mov word [edx + 0x16], ax
mov dword [edx + 0x38], 0
mov dword [edx + 0x40], 0
mov dword [edx + 0x44], 0
mov dword [edx + 0x3c], 0
mov dword [edx + 0x48], 0
mov dword [edx + 0x4c], 0
xor eax, eax
lea edx, [0x573de0]
lea ebp, [0x64f840]
jmp 0x4df1dd
movzx eax, word [edx + 0x16]
or eax, 8
mov word [edx + 0x16], ax
mov eax, dword [0x63027c]
mov dword [esp + 0x38], eax
lea ecx, [0x64fa88]
mov dword [esp], ecx
lea ecx, [0x54cebc]
mov dword [esp + 4], ecx
call sym.sync._Once_.Do
lea eax, [0x528a40]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [0x64faa8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x4defc1
mov eax, dword [esp + 0x38]
jmp 0x4defcc
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0x38]
mov dword [edi], eax
mov dword [esp + 0x94], ecx
mov dword [ecx + 4], eax
lea eax, [0x535e20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xa4]
mov edx, dword [ecx]
lea ebx, [0x573dd0]
mov dword [eax + 4], ebx
mov ebp, dword [0x64faa8]
test ebp, ebp
je 0x4df00b
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
mov dword [esp + 0x6c], eax
mov dword [eax + 8], edx
lea ecx, [0x528560]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 4], 0
mov ecx, dword [esp + 0xa4]
mov edx, dword [ecx]
lea ebx, [0x573dd0]
mov dword [eax], ebx
mov ebp, dword [0x64faa8]
test ebp, ebp
jne 0x4df067
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x94]
jmp 0x4df091
call sym.runtime.gcWriteBarrier6
mov dword [edi], edx
mov ebp, dword [eax + 4]
mov dword [edi + 4], ebp
mov dword [edi + 8], eax
mov ebp, dword [esp + 0x6c]
mov esi, dword [ebp + 0x18]
mov dword [edi + 0xc], esi
mov esi, dword [esp + 0x94]
mov dword [edi + 0x10], esi
mov ebx, dword [ebp + 0x20]
mov dword [edi + 0x14], ebx
mov dword [eax + 4], edx
mov dword [ebp + 0x18], eax
lea eax, [0x574264]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], esi
mov eax, dword [esp + 0xa8]
movzx eax, word [eax + 0x18]
mov dword [esp], ecx
mov word [esp + 4], ax
call sym.archive_zip._Writer_.compressor
mov edx, dword [esp + 8]
test edx, edx
je 0x4df35b
mov eax, dword [edx]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [ecx + 0x18]
lea ebp, [0x573dd0]
mov dword [esp], ebp
mov dword [esp + 4], ebx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x6c]
mov dword [esi + 0x10], eax
mov eax, dword [0x64faa8]
test eax, eax
je 0x4df10d
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebx
mov eax, dword [esi + 0x14]
mov dword [edi + 4], eax
mov dword [esi + 0x14], ebx
test ecx, ecx
jne 0x4df330
lea eax, [0x528560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 4], 0
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x14]
test edx, edx
je 0x4df18c
mov dword [esp + 0x98], ebx
mov dword [esp + 0x90], eax
mov eax, dword [edx + 4]
lea ecx, [0x62bfb0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.runtime.typeAssert
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x98]
mov dword [eax], edx
mov edx, dword [0x64faa8]
test edx, edx
jne 0x4df19e
mov edx, dword [esp + 0x68]
jmp 0x4df1c0
call sym.runtime.gcWriteBarrier6
mov dword [edi], ebx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov edx, dword [ecx + 0xc]
mov dword [edi + 0xc], edx
mov edx, dword [esp + 0x68]
mov dword [edi + 0x10], edx
mov ebp, dword [ecx]
mov dword [edi + 0x14], ebp
mov dword [eax + 4], ebx
mov dword [ecx + 0xc], eax
mov dword [ecx], edx
mov ecx, edx
mov ebx, dword [esp + 0xa4]
mov eax, dword [esp + 0x6c]
lea edx, [0x573df0]
mov ebp, eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0x2c], edx
mov dword [esp + 0x6c], eax
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 8]
inc edi
mov ebp, dword [ebx + 4]
cmp esi, edi
jae 0x4df259
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x532960]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xa4]
mov dword [ebx + 0xc], eax
mov eax, dword [0x64faa8]
test eax, eax
je 0x4df246
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
mov dword [ebx + 4], ecx
mov eax, dword [esp + 0x6c]
mov edi, edx
mov ebp, ecx
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x2c]
mov dword [ebx + 8], edi
mov esi, dword [0x64faa8]
test esi, esi
je 0x4df278
mov esi, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov edx, dword [ebp + esi*4 - 4]
mov dword [edi + 4], edx
mov edi, esi
mov dword [ebp + edi*4 - 4], ecx
mov eax, dword [ebx]
lea edx, [0x573dd0]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.archive_zip.writeHeader
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4df301
mov eax, dword [0x64faa8]
test eax, eax
jne 0x4df2b3
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xa4]
jmp 0x4df2cb
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0x6c]
mov dword [edi], eax
mov ecx, dword [esp + 0xa4]
mov edx, dword [ecx + 0x10]
mov dword [edi + 4], edx
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
add esp, 0xa0
ret
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ecx
add esp, 0xa0
ret
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], ebp
add esp, 0xa0
ret
mov eax, dword [0x62bba0]
mov ecx, dword [0x62bba4]
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ecx
add esp, 0xa0
ret
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ecx
add esp, 0xa0
ret
mov ecx, ebp
call sym.runtime.panicSliceB
mov eax, 4
call sym.runtime.panicSliceB
mov eax, 3
call sym.runtime.panicIndex
mov eax, 1
xor ecx, ecx
call sym.runtime.panicSliceB
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 2
call sym.runtime.panicSliceB
mov eax, 1
call sym.runtime.panicIndex
mov eax, 2
call sym.runtime.panicSliceB
nop
call sym.runtime.morestack_noctxt
jmp sym.archive_zip._Writer_.CreateHeader