Function at 0x1002fc80
Capabilities:
Convert ip address from string

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d9947
mov eax, dword fs:[0]
push eax
sub esp, 0x16c
mov eax, dword [0x1010f16c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x100], ecx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x108], eax
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x16c], eax
mov dword [ebp - 4], 0
push 0x50
call fcn.10090929
add esp, 4
mov dword [ebp - 0x104], eax
mov byte [ebp - 4], 1
mov ecx, eax
call fcn.1002da00
mov dword [ebp - 0xf4], eax
mov byte [ebp - 4], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0
push 0x10
call fcn.10090929
add esp, 4
mov ebx, eax
mov dword [ebp - 0x104], ebx
mov byte [ebp - 4], 2
mov dword [ebx + 4], 1
mov dword [ebx + 8], 1
mov dword [ebx], 0x100f5690
mov eax, dword [ebp - 0xf4]
mov dword [ebx + 0xc], eax
mov byte [ebp - 4], 0
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], ebx
mov byte [ebp - 4], 3
test eax, eax
je 0x100309c6
mov byte [ebp - 4], 4
push dword [edi]
push esi
mov ecx, eax
call fcn.1001ec70
xor al, al
mov byte [ebp - 0xed], al
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], al
mov byte [ebp - 4], 5
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], al
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0xf4]
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x160], eax
mov ecx, dword [edi + 0x24]
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x114], eax
cmp eax, ecx
je 0x100303ce
mov esi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
mov ecx, esi
call fcn.10023a50
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x2c]
call fcn.10019d80
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x78]
cmp ecx, 0x10
jb 0x1002fe44
inc ecx
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x8c]
mov eax, edx
cmp ecx, 0x1000
jb 0x1002fe3a
add ecx, 0x23
mov dword [ebp - 0x128], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a3f
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0xf
mov byte [ebp - 0x8c], 0
cmp dword [esi + 0x18], 1
jne 0x10030316
cmp dword [ebp + 0x20], 0
je 0x1002fe7c
call fcn.100053b0
lea ecx, [ebp - 0x2c]
push ecx
push dword [ebp + 0x20]
mov ecx, eax
call fcn.10007f60
mov edi, dword [ebp - 0x100]
mov edi, dword [edi + 0x298]
lea eax, [ebp - 0xbc]
push eax
mov ecx, esi
call fcn.10023a50
mov byte [ebp - 4], 8
cmp dword [eax + 0x14], 0x10
jb 0x1002fea2
mov eax, dword [eax]
push eax
lea eax, [ebp - 0xa4]
push eax
mov ecx, edi
call fcn.10018dd0
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x44]
call fcn.10019d80
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x90]
cmp ecx, 0x10
jb 0x1002ff08
inc ecx
mov dword [ebp - 0x13c], ecx
mov edx, dword [ebp - 0xa4]
mov eax, edx
cmp ecx, 0x1000
jb 0x1002fefe
add ecx, 0x23
mov dword [ebp - 0x13c], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a44
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0xf
mov byte [ebp - 0xa4], 0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0xa8]
cmp ecx, 0x10
jb 0x1002ff6d
inc ecx
mov dword [ebp - 0x144], ecx
mov edx, dword [ebp - 0xbc]
mov eax, edx
cmp ecx, 0x1000
jb 0x1002ff63
add ecx, 0x23
mov dword [ebp - 0x144], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a49
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0xf
mov byte [ebp - 0xbc], 0
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x1002ffae
lea eax, [ebp - 0x44]
cmp esi, eax
je 0x1002ffa7
cmp dword [ebp - 0x30], 0x10
cmovae eax, dword [ebp - 0x44]
push ecx
push eax
mov ecx, esi
call fcn.100057f0
mov byte [ebp - 0xed], 1
mov eax, dword [ebp - 0x100]
mov edi, dword [eax + 0x298]
lea eax, [ebp - 0xd4]
push eax
mov ecx, esi
call fcn.10023a50
mov byte [ebp - 4], 0xa
cmp dword [eax + 0x14], 0x10
jb 0x1002ffd4
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x5c]
push eax
mov ecx, edi
call fcn.10018c70
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0xc0]
cmp ecx, 0x10
jb 0x1003002a
inc ecx
mov dword [ebp - 0x148], ecx
mov edx, dword [ebp - 0xd4]
mov eax, edx
cmp ecx, 0x1000
jb 0x10030020
add ecx, 0x23
mov dword [ebp - 0x148], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a4e
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0xf
mov byte [ebp - 0xd4], 0
cmp dword [ebp - 0x4c], 0
je 0x10030118
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x1003006e
lea eax, [ebp - 0x2c]
cmp esi, eax
je 0x1003006e
cmp dword [ebp - 0x18], 0x10
cmovae eax, dword [ebp - 0x2c]
push ecx
push eax
mov ecx, esi
call fcn.100057f0
mov eax, dword [ebp - 0xf4]
mov dword [eax + 4], 1
push 0x2c
call fcn.10090929
add esp, 4
mov dword [ebp - 0x178], eax
mov byte [ebp - 4], 0xd
mov ecx, eax
call fcn.1001e850
mov edi, eax
mov byte [ebp - 4], 0xc
mov dword [edi + 0x18], 1
mov dword [edi + 0x1c], 1
sub esp, 0x18
mov edx, esp
mov dword [ebp - 0x118], esp
push edx
mov ecx, esi
call fcn.10023a50
mov byte [ebp - 4], 0xe
mov byte [ebp - 4], 0xc
mov ecx, edi
call fcn.1002d950
mov dword [edi + 0x20], 0x258
push 8
call fcn.10090929
add esp, 4
mov dword [ebp - 0x118], eax
mov byte [ebp - 4], 0xf
mov ecx, eax
call fcn.10020620
mov esi, eax
mov byte [ebp - 4], 0xc
lea edx, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
cmovae edx, dword [ebp - 0x5c]
lea ecx, [esi + 4]
push ecx
push edx
push 2
call dword [sym.imp.WS2_32.dll_inet_pton]
mov dword [edi + 0x28], esi
mov eax, dword [esi]
mov ecx, esi
jmp 0x1003028d
mov eax, dword [ebp - 0x100]
mov edi, dword [eax + 0x298]
lea eax, [ebp - 0xec]
push eax
mov ecx, esi
call fcn.10023a50
mov byte [ebp - 4], 0x10
cmp dword [eax + 0x14], 0x10
jb 0x1003013e
mov eax, dword [eax]
lea ecx, [ebp - 0x150]
push ecx
push eax
mov ecx, edi
call fcn.10019200
mov byte [ebp - 0xee], al
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0xd8]
cmp ecx, 0x10
jb 0x100301a3
inc ecx
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0xec]
mov eax, edx
cmp ecx, 0x1000
jb 0x10030193
add ecx, 0x23
mov dword [ebp - 0x14c], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a53
push ecx
push edx
call fcn.1009091b
add esp, 8
mov al, byte [ebp - 0xee]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0xf
mov byte [ebp - 0xec], 0
test al, al
je 0x100302a6
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x100301e5
lea eax, [ebp - 0x2c]
cmp esi, eax
je 0x100301e5
cmp dword [ebp - 0x18], 0x10
cmovae eax, dword [ebp - 0x2c]
push ecx
push eax
mov ecx, esi
call fcn.100057f0
mov eax, dword [ebp - 0xf4]
mov dword [eax + 4], 1
push 0x2c
call fcn.10090929
add esp, 4
mov dword [ebp - 0x140], eax
mov byte [ebp - 4], 0x11
mov ecx, eax
call fcn.1001e850
mov edi, eax
mov byte [ebp - 4], 0xc
mov dword [edi + 0x18], 1
mov dword [edi + 0x1c], 1
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x10c], esp
push ecx
mov ecx, esi
call fcn.10023a50
mov byte [ebp - 4], 0x12
mov byte [ebp - 4], 0xc
mov ecx, edi
call fcn.1002d950
mov dword [edi + 0x20], 0x258
push 8
call fcn.10090929
add esp, 4
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0x13
mov ecx, eax
call fcn.10020620
mov edx, eax
mov byte [ebp - 4], 0xc
xor ecx, ecx
mov dword [ebp - 0x154], ecx
cmp ecx, 4
jae 0x10030286
mov al, byte [ebp + ecx - 0x150]
mov byte [ecx + edx + 4], al
inc ecx
jmp 0x1003026d
mov dword [edi + 0x28], edx
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 4]
mov dword [edi + 0x18], eax
push edi
mov ecx, dword [ebp - 0xf4]
call fcn.1002dae0
mov byte [ebp - 0xed], 1
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x100302ea
inc ecx
mov dword [ebp - 0x158], ecx
mov edx, dword [ebp - 0x5c]
mov eax, edx
cmp ecx, 0x1000
jb 0x100302e0
add ecx, 0x23
mov dword [ebp - 0x158], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a58
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
mov eax, dword [ebp - 0x114]
add eax, 4
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x104]
jmp 0x1002fdd2
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x1003035a
inc ecx
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x44]
mov eax, edx
cmp ecx, 0x1000
jb 0x10030350
add ecx, 0x23
mov dword [ebp - 0x164], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a5d
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x100303b0
inc ecx
mov dword [ebp - 0x168], ecx
mov edx, dword [ebp - 0x2c]
mov eax, edx
cmp ecx, 0x1000
jb 0x100303a6
add ecx, 0x23
mov dword [ebp - 0x168], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a62
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 0
or esi, 0xffffffff
jmp 0x100309d0
push 0x78
call fcn.10090929
add esp, 4
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0x14
mov ecx, eax
call fcn.10023ab0
mov esi, eax
mov byte [ebp - 4], 6
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0
push 0x10
call fcn.10090929
add esp, 4
mov dword [ebp - 0x10c], eax
mov byte [ebp - 4], 0x15
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax], 0x100f56a0
mov dword [eax + 0xc], esi
mov byte [ebp - 4], 6
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0xf8], eax
mov byte [ebp - 4], 0x16
mov esi, dword [ebp - 0xfc]
test esi, esi
je 0x10030886
push dword [ebp - 0x16c]
push dword [ebp - 0x108]
push dword [ebp + 0xc]
push dword [ebp + 8]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x44]
push eax
sub esp, 8
mov ecx, esp
mov dword [ebp - 0x10c], esp
lea eax, [ebp - 0x120]
push eax
call fcn.10005330
mov byte [ebp - 4], 0x17
sub esp, 8
mov ecx, esp
mov dword [ebp - 0x140], esp
lea eax, [ebp + 0x20]
push eax
call fcn.10005330
mov byte [ebp - 4], 0x18
sub esp, 8
mov ecx, esp
mov dword [ebp - 0x118], esp
mov edi, dword [ebp - 0x100]
lea eax, [edi + 0x298]
push eax
call fcn.10005330
mov byte [ebp - 4], 0x19
mov byte [ebp - 4], 0x16
mov ecx, esi
call fcn.10023d00
test al, al
je 0x10030886
lea eax, [edi + 0x310]
push eax
lea ecx, [ebp - 0x108]
call fcn.100166d0
mov byte [ebp - 4], 0x1a
lea ecx, [edi + 0x340]
lea eax, [ebp - 0x2c]
lea edx, [ebp - 0x44]
cmp dword [ebp - 0x34], 0
cmovne eax, edx
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.100352e0
mov edx, dword [ebp - 0x110]
mov ecx, dword [edx + 0x24]
cmp dword [edx + 0x28], ecx
je 0x10030547
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [ebp - 0xf8]
test eax, eax
je 0x10030530
lock inc dword [eax + 4]
mov eax, dword [ebp - 0xfc]
mov dword [ecx], eax
mov eax, dword [ebp - 0xf8]
mov dword [ecx + 4], eax
add dword [edx + 0x24], 8
jmp 0x10030557
lea eax, [ebp - 0xfc]
push eax
push ecx
lea ecx, [edx + 0x20]
call fcn.1000b6c0
mov byte [ebp - 4], 0x16
push dword [ebp - 0x108]
call fcn.10079bc8
add esp, 4
test eax, eax
je 0x10030576
push eax
call fcn.10079c5b
add esp, 4
cmp byte [ebp - 0xed], 0
jne 0x10030698
call fcn.100053b0
lea ecx, [ebp - 0x2c]
push ecx
mov ecx, eax
call fcn.10007c20
test al, al
je 0x100305b3
mov ecx, dword [ebp + 0x20]
test ecx, ecx
je 0x10030698
lea eax, [ebp - 0x2c]
push eax
call fcn.10026430
test al, al
jne 0x10030698
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0xf8]
or esi, 0xffffffff
test edi, edi
je 0x100305e3
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x100305e3
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x100305e3
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x10030627
inc ecx
mov dword [ebp - 0x170], ecx
mov edx, dword [ebp - 0x44]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003061d
add ecx, 0x23
mov dword [ebp - 0x170], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a67
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x1003067d
inc ecx
mov dword [ebp - 0x124], ecx
mov edx, dword [ebp - 0x2c]
mov eax, edx
cmp ecx, 0x1000
jb 0x10030673
add ecx, 0x23
mov dword [ebp - 0x124], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a6c
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 0
jmp 0x100309d0
lea eax, [ebp - 0x74]
push eax
mov ecx, dword [ebp - 0xf4]
call fcn.1001f3b0
mov ecx, eax
mov byte [ebp - 4], 0x1b
cmp dword [ecx + 0x14], 0x10
jb 0x100306b5
mov ecx, dword [ecx]
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x100306c6
cmp dword [eax + 0x14], 0x10
jb 0x100306cb
mov eax, dword [eax]
jmp 0x100306cb
mov eax, str.dnsclient
push ecx
push eax
push str.rule_name__s_dns_query:_s
push str.server_mgr::process_dns
push 0x137
push str.d:projectwireguard_engine_rules_server_mgr.cpp
push 4
call fcn.10070dc0
add esp, 0x1c
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x60]
cmp ecx, 0x10
jb 0x1003072f
inc ecx
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x74]
mov eax, edx
cmp ecx, 0x1000
jb 0x10030725
add ecx, 0x23
mov dword [ebp - 0x15c], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a71
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0xf
mov byte [ebp - 0x74], 0
lea ecx, [edi + 8]
lea eax, [ebp - 0xfc]
push eax
call fcn.100329b0
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0xf8]
or esi, 0xffffffff
test edi, edi
je 0x10030780
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x10030780
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x10030780
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x100307c4
inc ecx
mov dword [ebp - 0x12c], ecx
mov edx, dword [ebp - 0x44]
mov eax, edx
cmp ecx, 0x1000
jb 0x100307ba
add ecx, 0x23
mov dword [ebp - 0x12c], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a76
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x1003081a
inc ecx
mov dword [ebp - 0x130], ecx
mov edx, dword [ebp - 0x2c]
mov eax, edx
cmp ecx, 0x1000
jb 0x10030810
add ecx, 0x23
mov dword [ebp - 0x130], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a7b
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 0
test ebx, ebx
je 0x10030853
mov eax, esi
lock xadd dword [ebx + 4], eax
jne 0x10030853
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
mov eax, esi
lock xadd dword [ebx + 8], eax
jne 0x10030853
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp + 0x24]
test edi, edi
je 0x1003087f
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x1003087f
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x1003087f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov al, 1
jmp 0x10030a21
mov byte [ebp - 4], 6
mov edi, dword [ebp - 0xf8]
or esi, 0xffffffff
test edi, edi
je 0x100308b6
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x100308b6
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x100308b6
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x100308fa
inc ecx
mov dword [ebp - 0x134], ecx
mov edx, dword [ebp - 0x44]
mov eax, edx
cmp ecx, 0x1000
jb 0x100308f0
add ecx, 0x23
mov dword [ebp - 0x134], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a80
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x10030950
inc ecx
mov dword [ebp - 0x138], ecx
mov edx, dword [ebp - 0x2c]
mov eax, edx
cmp ecx, 0x1000
jb 0x10030946
add ecx, 0x23
mov dword [ebp - 0x138], ecx
mov edx, dword [edx - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10030a85
push ecx
push edx
call fcn.1009091b
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
jmp 0x100309c9
or esi, 0xffffffff
mov dword [ebp - 4], 0
test ebx, ebx
je 0x100309f3
mov eax, esi
lock xadd dword [ebx + 4], eax
jne 0x100309f3
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
mov eax, esi
lock xadd dword [ebx + 8], eax
jne 0x100309f3
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp + 0x24]
test edi, edi
je 0x10030a1f
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x10030a1f
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x10030a1f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100908e7
mov esp, ebp
pop ebp
ret 0x20
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
call fcn.100abcda
int3