Function at 0x452ca0
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x478
mov eax, dword [0x658aa8]
xor eax, esp
mov dword [esp + 0x474], eax
mov eax, dword [esp + 0x480]
push esi
mov esi, dword [esp + 0x480]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x60], ecx
lea eax, [esp + 0x2c]
mov ecx, esi
mov dword [esp + 0x68], edx
mov dword [esp + 4], 0
mov dword [esp + 0x48], 0xff
call fcn.00452960
test eax, eax
jne 0x452d04
pop esi
mov ecx, dword [esp + 0x474]
xor ecx, esp
call fcn.00499a1c
add esp, 0x478
ret
mov eax, dword [esi + 4]
xor ecx, ecx
test eax, eax
setg cl
cdq
push ebx
mov ebx, dword [esp + 0x34]
push ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x64], ecx
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x3c]
push edi
mov edi, dword [esp + 0x58]
mov dword [esi + 4], ecx
cmp edx, 0xc
jne 0x452d58
cmp ebp, 0x18
jge 0x452d6d
mov edx, ebx
sub edx, edi
sub edx, 0x18
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x452d66
cmp ebp, 0x10
jge 0x452d6a
mov eax, ebx
sub eax, edi
sub eax, edx
sar eax, 2
mov dword [esp + 0x10], eax
cmp ebp, 0x18
mov edi, dword [esp + 0x50]
jne 0x452d84
cmp edi, 0xff000000
jne 0x452d84
mov dword [esi + 8], 3
jmp 0x452d91
xor eax, eax
test edi, edi
setne al
add eax, 3
mov dword [esi + 8], eax
mov edi, dword [esi]
test edi, edi
jl 0x452de5
je 0x452daf
mov eax, closesocket
cdq
idiv edi
xor edx, edx
cmp eax, 4
setge dl
mov eax, edx
test eax, eax
je 0x452de5
lea ebp, [edi*4]
test ebp, ebp
jl 0x452de5
test ecx, ecx
jl 0x452de5
je 0x452dd5
mov eax, closesocket
cdq
idiv ecx
xor edx, edx
cmp ebp, eax
setle dl
mov eax, edx
test eax, eax
je 0x452de5
mov eax, edi
imul eax, ecx
add eax, eax
add eax, eax
cmp eax, 0x7fffffff
jle 0x452dfc
mov ecx, dword fs:[0x2c]
mov edx, dword [ecx]
mov dword [edx + 4], str.too_large
xor eax, eax
jmp 0x45383e
test edi, edi
jl 0x452e5c
je 0x452e18
mov eax, closesocket
cdq
idiv edi
xor edx, edx
cmp eax, 4
setge dl
mov eax, edx
test eax, eax
je 0x452e5c
lea ebp, [edi*4]
test ebp, ebp
jl 0x452e5c
test ecx, ecx
jl 0x452e5c
je 0x452e3e
mov eax, closesocket
cdq
idiv ecx
xor edx, edx
cmp ebp, eax
setle dl
mov eax, edx
test eax, eax
je 0x452e5c
imul edi, ecx
add edi, edi
add edi, edi
cmp edi, 0x7fffffff
jg 0x452e5c
push edi
call fcn.0049b122
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x452e72
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov dword [ecx + 4], str.outofmem
xor eax, eax
jmp 0x45383e
xor edi, edi
cmp dword [esp + 0x38], 0x10
jge 0x453334
mov eax, dword [esp + 0x10]
test eax, eax
je 0x453314
cmp eax, 0x100
jg 0x453314
xor ebx, ebx
test eax, eax
jle 0x452f9a
mov ecx, dword [esi + 0xa8]
cmp ecx, dword [esi + 0xac]
jae 0x452eb9
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x452ed6
cmp dword [esi + 0x20], edi
je 0x452ed4
call fcn.0044a1c0
mov ecx, dword [esi + 0xa8]
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x452ed6
xor al, al
mov byte [esp + ebx*4 + 0x86], al
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x452ef6
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x452f13
cmp dword [esi + 0x20], edi
je 0x452f11
call fcn.0044a1c0
mov eax, dword [esi + 0xa8]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x452f13
xor cl, cl
mov eax, dword [esi + 0xa8]
mov byte [esp + ebx*4 + 0x85], cl
cmp eax, dword [esi + 0xac]
jae 0x452f33
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x452f50
cmp dword [esi + 0x20], edi
je 0x452f4e
call fcn.0044a1c0
mov eax, dword [esi + 0xa8]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x452f50
xor cl, cl
cmp dword [esp + 0x40], 0xc
mov byte [esp + ebx*4 + 0x84], cl
je 0x452f85
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x452f75
inc eax
mov dword [esi + 0xa8], eax
jmp 0x452f85
cmp dword [esi + 0x20], edi
je 0x452f85
call fcn.0044a1c0
inc dword [esi + 0xa8]
mov eax, dword [esp + 0x10]
mov byte [esp + ebx*4 + 0x87], 0xff
inc ebx
cmp ebx, eax
jl 0x452ea0
mov ecx, dword [esp + 0x40]
xor edx, edx
cmp ecx, 0xc
setne dl
add edx, 3
imul edx, eax
mov eax, dword [esp + 0x3c]
sub eax, edx
sub eax, dword [esp + 0x58]
sub eax, ecx
jns 0x452fc8
mov eax, dword [esi + 0xac]
mov dword [esi + 0xa8], eax
jmp 0x452fd1
mov edx, eax
mov eax, esi
call fcn.0044a200
mov ecx, dword [esp + 0x38]
cmp ecx, 1
jne 0x452fe4
mov eax, dword [esi]
add eax, 7
shr eax, 3
jmp 0x452ffb
cmp ecx, 4
jne 0x452ff0
mov eax, dword [esi]
inc eax
shr eax, 1
jmp 0x452ffb
cmp ecx, 8
jne 0x4532f4
mov eax, dword [esi]
neg eax
and eax, 3
mov ebx, eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edi
cmp ecx, 1
jne 0x45316a
cmp dword [esi + 4], edi
jle 0x453791
lea esp, [esp]
mov eax, dword [esi + 0xa8]
mov dword [esp + 0x18], 7
cmp eax, dword [esi + 0xac]
jae 0x453041
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45305f
cmp dword [esi + 0x20], 0
je 0x45305d
call fcn.0044a1c0
mov eax, dword [esi + 0xa8]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45305f
xor cl, cl
movzx ecx, cl
xor edx, edx
cmp dword [esi], edx
mov dword [esp + 0x1c], ecx
jle 0x45310a
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
sar eax, cl
inc edi
inc edi
inc edi
and eax, 1
movzx ecx, byte [esp + eax*4 + 0x84]
mov byte [edi + ebp - 3], cl
movzx ecx, byte [esp + eax*4 + 0x85]
mov al, byte [esp + eax*4 + 0x86]
mov byte [edi + ebp - 2], cl
mov byte [edi + ebp - 1], al
mov byte [edi + ebp], 0xff
lea ebx, [edx + 1]
inc edi
cmp ebx, dword [esi]
je 0x453106
sub dword [esp + 0x18], 1
jns 0x4530fc
mov eax, dword [esi + 0xa8]
mov dword [esp + 0x18], 7
cmp eax, dword [esi + 0xac]
jae 0x4530d7
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x4530f5
cmp dword [esi + 0x20], 0
je 0x4530f3
call fcn.0044a1c0
mov eax, dword [esi + 0xa8]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x4530f5
xor cl, cl
movzx ecx, cl
mov dword [esp + 0x1c], ecx
mov edx, ebx
cmp edx, dword [esi]
jl 0x453070
mov ebx, dword [esp + 0x10]
test ebx, ebx
jge 0x45311c
mov edx, dword [esi + 0xac]
mov dword [esi + 0xa8], edx
jmp 0x453153
cmp dword [esi + 0x10], 0
je 0x45314d
mov ecx, dword [esi + 0xac]
mov eax, ecx
sub eax, dword [esi + 0xa8]
cmp eax, ebx
jge 0x45314d
mov edx, dword [esi + 0x1c]
mov dword [esi + 0xa8], ecx
mov ecx, ebx
sub ecx, eax
mov eax, dword [esi + 0x14]
push ecx
push edx
call eax
add esp, 8
jmp 0x453153
add dword [esi + 0xa8], ebx
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [esi + 4]
mov dword [esp + 0x14], eax
jl 0x453020
jmp 0x453791
cmp dword [esi + 4], edi
jle 0x453791
mov edx, dword [esp + 0x10]
jmp 0x453180
xor ebx, ebx
cmp dword [esi], ebx
jle 0x45328e
lea ebx, [ebx]
mov ecx, dword [esi + 0xa8]
cmp ecx, dword [esi + 0xac]
jae 0x4531a9
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x4531c7
cmp dword [esi + 0x20], 0
je 0x4531c5
call fcn.0044a1c0
mov ecx, dword [esi + 0xa8]
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x4531c7
xor al, al
xor ecx, ecx
cmp dword [esp + 0x38], 4
movzx eax, al
jne 0x4531db
mov ecx, eax
and ecx, 0xf
sar eax, 4
movzx edx, byte [esp + eax*4 + 0x84]
mov byte [edi + ebp], dl
movzx edx, byte [esp + eax*4 + 0x85]
mov al, byte [esp + eax*4 + 0x86]
inc edi
mov byte [edi + ebp], dl
inc edi
mov byte [edi + ebp], al
inc edi
mov byte [edi + ebp], 0xff
lea edx, [ebx + 1]
inc edi
cmp edx, dword [esi]
je 0x45328a
cmp dword [esp + 0x38], 8
jne 0x453257
mov ecx, dword [esi + 0xa8]
cmp ecx, dword [esi + 0xac]
jae 0x453231
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
movzx eax, al
jmp 0x453259
cmp dword [esi + 0x20], 0
je 0x453250
call fcn.0044a1c0
mov ecx, dword [esi + 0xa8]
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
movzx eax, al
jmp 0x453259
xor al, al
movzx eax, al
jmp 0x453259
mov eax, ecx
mov cl, byte [esp + eax*4 + 0x84]
mov dl, byte [esp + eax*4 + 0x85]
mov al, byte [esp + eax*4 + 0x86]
mov byte [edi + ebp], cl
inc edi
mov byte [edi + ebp], dl
inc edi
mov byte [edi + ebp], al
inc edi
mov byte [edi + ebp], 0xff
add ebx, 2
inc edi
cmp ebx, dword [esi]
jl 0x453190
mov edx, dword [esp + 0x10]
test edx, edx
jge 0x4532a0
mov ecx, dword [esi + 0xac]
mov dword [esi + 0xa8], ecx
jmp 0x4532dd
cmp dword [esi + 0x10], 0
je 0x4532d7
mov ecx, dword [esi + 0xac]
mov eax, ecx
sub eax, dword [esi + 0xa8]
cmp eax, edx
jge 0x4532d7
mov edx, dword [esp + 0x10]
sub edx, eax
mov eax, dword [esi + 0x1c]
push edx
mov dword [esi + 0xa8], ecx
mov ecx, dword [esi + 0x14]
push eax
call ecx
mov edx, dword [esp + 0x18]
add esp, 8
jmp 0x4532dd
add dword [esi + 0xa8], edx
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [esi + 4]
mov dword [esp + 0x14], eax
jl 0x453180
jmp 0x453791
push ebp
call fcn.0049b045
mov edx, dword fs:[0x2c]
mov eax, dword [edx]
add esp, 4
mov dword [eax + 4], str.bad_bpp
xor eax, eax
jmp 0x45383e
push ebp
call fcn.0049b045
mov ecx, dword fs:[0x2c]
mov edx, dword [ecx]
add esp, 4
mov dword [edx + 4], str.invalid
xor eax, eax
jmp 0x45383e
sub ebx, dword [esp + 0x58]
xor ecx, ecx
sub ebx, dword [esp + 0x40]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x18], ecx
mov edx, ebx
jns 0x453374
mov eax, dword [esi + 0xac]
mov dword [esi + 0xa8], eax
jmp 0x45337d
mov eax, esi
call fcn.0044a200
xor ecx, ecx
mov edx, dword [esp + 0x38]
cmp edx, 0x18
jne 0x45338d
mov eax, dword [esi]
lea eax, [eax + eax*2]
jmp 0x45339a
cmp edx, 0x10
jne 0x453398
mov eax, dword [esi]
add eax, eax
jmp 0x45339a
xor eax, eax
mov ebx, dword [esp + 0x4c]
neg eax
and eax, 3
mov dword [esp + 0x10], eax
cmp edx, 0x18
jne 0x453400
mov dword [esp + 0x18], 1
cmp dword [esi + 4], edi
mov dword [esp + 0x14], edi
jle 0x453791
xor ebx, ebx
cmp dword [esp + 0x18], ebx
je 0x4535de
cmp dword [esi], ebx
jle 0x453730
jmp 0x4533e0
mov ecx, dword [esi + 0xa8]
cmp ecx, dword [esi + 0xac]
jae 0x4534e9
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x453507
cmp edx, 0x20
jne 0x453438
cmp ebx, 0xff
jne 0x453438
cmp dword [esp + 0x48], 0xff00
jne 0x453438
cmp dword [esp + 0x44], 0xff0000
jne 0x453438
cmp dword [esp + 0x50], 0xff000000
jne 0x453454
mov dword [esp + 0x18], 2
jmp 0x4533b4
cmp dword [esp + 0x44], ecx
je 0x4534c9
cmp dword [esp + 0x48], ecx
je 0x4534c9
cmp ebx, ecx
je 0x4534c9
mov edx, dword [esp + 0x44]
mov ecx, edx
call fcn.004528c0
sub eax, 7
mov ecx, edx
mov dword [esp + 0x28], eax
call fcn.00452910
mov edx, dword [esp + 0x48]
mov ecx, edx
mov dword [esp + 0x34], eax
call fcn.004528c0
sub eax, 7
mov ecx, edx
mov dword [esp + 0x24], eax
call fcn.00452910
mov ecx, ebx
mov dword [esp + 0x30], eax
call fcn.004528c0
sub eax, 7
mov ecx, ebx
mov dword [esp + 0x2c], eax
call fcn.00452910
mov edx, dword [esp + 0x50]
mov ecx, edx
mov dword [esp + 0x1c], eax
call fcn.004528c0
sub eax, 7
mov ecx, edx
mov dword [esp + 0x5c], eax
call fcn.00452910
mov dword [esp + 0x60], eax
jmp 0x4533b4
push ebp
call fcn.0049b045
mov ecx, dword fs:[0x2c]
mov edx, dword [ecx]
add esp, 4
mov dword [edx + 4], str.bad_masks
xor eax, eax
jmp 0x45383e
cmp dword [esi + 0x20], 0
je 0x453505
call fcn.0044a1c0
mov ecx, dword [esi + 0xa8]
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x453507
xor al, al
mov byte [edi + ebp + 2], al
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x453524
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x453542
cmp dword [esi + 0x20], 0
je 0x453540
call fcn.0044a1c0
mov eax, dword [esi + 0xa8]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x453542
xor cl, cl
mov byte [edi + ebp + 1], cl
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x45355f
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45357d
cmp dword [esi + 0x20], 0
je 0x45357b
call fcn.0044a1c0
mov eax, dword [esi + 0xa8]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x45357d
xor cl, cl
mov byte [edi + ebp], cl
add edi, 3
cmp dword [esp + 0x18], 2
jne 0x4535c3
mov ecx, dword [esi + 0xa8]
cmp ecx, dword [esi + 0xac]
jae 0x4535a3
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x4535c5
cmp dword [esi + 0x20], 0
je 0x4535bf
call fcn.0044a1c0
mov ecx, dword [esi + 0xa8]
mov al, byte [ecx]
inc ecx
mov dword [esi + 0xa8], ecx
jmp 0x4535c5
xor al, al
jmp 0x4535c5
or al, 0xff
movzx ecx, al
or dword [esp + 0x20], ecx
mov byte [edi + ebp], al
inc ebx
inc edi
cmp ebx, dword [esi]
jl 0x4533e0
jmp 0x453730
cmp dword [esi], ebx
mov dword [esp + 0x64], ebx
jle 0x453730
mov eax, 8
sub eax, dword [esp + 0x30]
mov ebx, 8
sub ebx, dword [esp + 0x34]
mov dword [esp + 0x7c], eax
mov eax, 8
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x70], eax
mov eax, esi
call fcn.0044a380
cmp dword [esp + 0x38], 0x10
je 0x453637
mov ebx, eax
mov eax, esi
call fcn.0044a380
shl eax, 0x10
add eax, ebx
mov ebx, dword [esp + 0x80]
mov ecx, dword [esp + 0x28]
mov edx, eax
and edx, dword [esp + 0x44]
test ecx, ecx
jge 0x45364b
neg ecx
shl edx, cl
jmp 0x45364d
shr edx, cl
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x34]
inc edi
imul edx, dword [ecx*4 + 0x665608]
mov ecx, dword [ecx*4 + 0x66562c]
sar edx, cl
mov ecx, dword [esp + 0x24]
mov byte [edi + ebp - 1], dl
mov edx, eax
and edx, dword [esp + 0x48]
test ecx, ecx
jge 0x45367f
neg ecx
shl edx, cl
jmp 0x453681
shr edx, cl
mov ecx, dword [esp + 0x7c]
shr edx, cl
mov ecx, dword [esp + 0x30]
inc edi
imul edx, dword [ecx*4 + 0x665608]
mov ecx, dword [ecx*4 + 0x66562c]
sar edx, cl
mov ecx, dword [esp + 0x2c]
mov byte [edi + ebp - 1], dl
mov edx, eax
and edx, dword [esp + 0x4c]
test ecx, ecx
jge 0x4536b5
neg ecx
shl edx, cl
jmp 0x4536b7
shr edx, cl
mov ecx, dword [esp + 0x70]
shr edx, cl
mov ecx, dword [esp + 0x1c]
inc edi
imul edx, dword [ecx*4 + 0x665608]
mov ecx, dword [ecx*4 + 0x66562c]
sar edx, cl
cmp dword [esp + 0x50], 0
mov byte [edi + ebp - 1], dl
je 0x453712
mov ecx, dword [esp + 0x5c]
and eax, dword [esp + 0x50]
test ecx, ecx
jge 0x4536f0
neg ecx
shl eax, cl
jmp 0x4536f2
shr eax, cl
mov edx, dword [esp + 0x60]
mov ecx, 8
sub ecx, edx
shr eax, cl
mov ecx, dword [edx*4 + 0x66562c]
imul eax, dword [edx*4 + 0x665608]
sar eax, cl
jmp 0x453717
mov eax, 0xff
or dword [esp + 0x20], eax
mov byte [edi + ebp], al
mov eax, dword [esp + 0x64]
inc eax
inc edi
cmp eax, dword [esi]
mov dword [esp + 0x64], eax
jl 0x453614
mov edx, dword [esp + 0x10]
test edx, edx
jge 0x453746
mov edx, dword [esi + 0xac]
mov dword [esi + 0xa8], edx
jmp 0x45377f
cmp dword [esi + 0x10], 0
je 0x453779
mov ecx, dword [esi + 0xac]
mov eax, ecx
sub eax, dword [esi + 0xa8]
cmp eax, edx
jge 0x453779
mov edx, dword [esi + 0x1c]
mov dword [esi + 0xa8], ecx
mov ecx, dword [esp + 0x10]
sub ecx, eax
mov eax, dword [esi + 0x14]
push ecx
push edx
call eax
add esp, 8
jmp 0x45377f
add dword [esi + 0xa8], edx
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [esi + 4]
mov dword [esp + 0x14], eax
jl 0x4533c1
cmp dword [esp + 0x20], 0
jne 0x4537ba
mov eax, dword [esi]
imul eax, dword [esi + 4]
lea eax, [eax*4 - 1]
test eax, eax
jl 0x4537ba
lea esp, [esp]
sub eax, 4
mov byte [eax + ebp + 4], 0xff
jns 0x4537b0
cmp dword [esp + 0x68], 0
je 0x45381e
xor edx, edx
test dword [esi + 4], 0xfffffffe
mov dword [esp + 0x14], edx
jle 0x45381e
mov ecx, dword [esi]
mov eax, ecx
imul eax, edx
lea ebx, [ebp + eax*4]
mov eax, dword [esi + 4]
sub eax, edx
dec eax
imul eax, ecx
add ecx, ecx
add ecx, ecx
xor edi, edi
lea eax, [ebp + eax*4]
test ecx, ecx
jle 0x453810
mov ecx, ebx
sub ecx, eax
mov dl, byte [ecx + eax]
mov bl, byte [eax]
mov byte [ecx + eax], bl
mov byte [eax], dl
mov edx, dword [esi]
add edx, edx
inc edi
add edx, edx
inc eax
cmp edi, edx
jl 0x4537f6
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 4]
inc edx
sar eax, 1
cmp edx, eax
mov dword [esp + 0x14], edx
jl 0x4537d0
mov ecx, dword [esi]
mov edx, dword [esp + 0x78]
mov dword [edx], ecx
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x6c]
mov dword [ecx], eax
mov eax, dword [esp + 0x74]
test eax, eax
je 0x45383c
mov edx, dword [esi + 8]
mov dword [eax], edx
mov eax, ebp
mov ecx, dword [esp + 0x484]
pop edi
pop ebp
pop ebx
pop esi
xor ecx, esp
call fcn.00499a1c
add esp, 0x478
ret